在java中具体类型的浮点数运算是不精确的,如果在java程序中输
出3-2.6的值,可以看到输出的结果为0.3999999999999999,这个值
是不精确的,所以表达式3-2.6==0.4的值是假,即:false;
1、使用基本数据类型进行浮点数计算,并输出差值和比较结果
- public class Compare{
- public static void main(String[] args){
- System.out.println(3-2.6);
- System.out.println(3-2.26==0.4);
- }
- }
复制代码
2、使用BigDecimal进行浮点数计算,并输出差值和比较结果
- import java.math.BigDecimal;
- public class Compare {
- public static void main(String[] args){
- BigDecimal x=new BigDecimal("3");
- BigDecimal y=new BigDecimal("2.6");
- BigDecimal z=x.subtract(y);
- double value=z.doubleValue(); //将计算结果转换为基本数据类型double型
- System.out.println(value); //输出计算结果
- System.out.println(value==0.4);
- }
- }
复制代码 |