黑马程序员技术交流社区
标题:
java浮点数运算时的精度问题
[打印本页]
作者:
IDhmpj
时间:
2015-5-4 22:03
标题:
java浮点数运算时的精度问题
class FloatTest
{
public static void main(String[] args)
{
System.out.println(2.00-1.10);
}
}
复制代码
这段代码的结果不是0.9,而是0.8999999999999999。
原因就是double精度带来的问题,1.1相当于1.0000000000000009。就造成了上面的问题。
在遇到需要对浮点数进行运算的时候,应该使用BigDecimal。
import java.math.BigDecimal ;
class FloatTest
{
public static void main(String[] args)
{
System.out.println(new BigDecimal("2.00").subtract(new BigDecimal("1.10")));
}
}
复制代码
这样得到的结果就是:0.90
注意:在构建BigDecimal 对象的时候要使用参数为字符串的构造器。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2