- 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 对象的时候要使用参数为字符串的构造器。 |
|