java 两个 double 类型变量相加
最近在学习javaapplet,遇到一个很奇怪的问题,就是在运算两个double变量的时候会出现不知道是不是错误的情况。比如1.3+2.3=3.59999999996而不...
最近在学习java applet,遇到一个很奇怪的问题,就是在运算两个double变量的时候会出现不知道是不是错误的情况。
比如 1.3+2.3=3.59999999996 而不是3.6
但是 1.3+1.3=2.6就没有之前的那种情况的出现。
对Java,C++跟PHP都还算是比较熟悉,好像是第一次遇到这个问题,想请教一下这是怎么回事,怎么才能避免呢。
附上两个截图,包含代码跟applet viewer的截图。
出现问题的情况
正常的情况 展开
比如 1.3+2.3=3.59999999996 而不是3.6
但是 1.3+1.3=2.6就没有之前的那种情况的出现。
对Java,C++跟PHP都还算是比较熟悉,好像是第一次遇到这个问题,想请教一下这是怎么回事,怎么才能避免呢。
附上两个截图,包含代码跟applet viewer的截图。
出现问题的情况
正常的情况 展开
1个回答
展开全部
在编程语言里,double,float都不是精确的值。比如float x=1,实际上计算机存储的可能是0.999999,也可能是1.000000,这都不是我们能控制的。
为了解决这个问题,java引入了 BigDecimal类,用String类型来纪录精确值,聪明吧
import java.math.BigDecimal
BigDecimal x = new BigDecimal(1.0);
BigDecimal y = x.add(x);
等用法,你可以在网上搜到
为了解决这个问题,java引入了 BigDecimal类,用String类型来纪录精确值,聪明吧
import java.math.BigDecimal
BigDecimal x = new BigDecimal(1.0);
BigDecimal y = x.add(x);
等用法,你可以在网上搜到
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询