Java知识点解析

Java知识点解析

经验文章nimo972025-05-26 0:17:443A+A-

1.我的第一反应就是为true,因为'-'的运算等级比'=='高,所以0.4==0.4,

然后就是true,可是这是错的。

2.代码演示:

package Test;

import java.math.BigDecimal;

public class sss {

public static void main(String[] args) {

sss ss = new sss();

ss.ImpreciseResult();

ss.PrecisionResult();

}

public void ImpreciseResult(){

System.out.println(3-2.6);//输出3和2.6的差值

System.out.println(3-2.6==0.4);//输出比较结果

}

public void PrecisionResult(){

BigDecimal x = new BigDecimal("3");//创建3的BigDecimal对象

BigDecimal y = new BigDecimal("2.6");//创建2.6的BigDecimal对象

BigDecimal z=x.subtract(y);//计算3和2.6的差值

double value=z.doubleValue();//转成double

System.out.println(value);//计算结果

System.out.println(value==0.4);//比较结果

}

}

3.运行结果:

原因是:Java中基本类型的浮点数运算是不精确的,在实际中,为了得到精确的计算结果,对于浮点数的运算一般不使用基本数据类型来实现,而是使用BigDecimal类实现.

点击这里复制本文地址 以上内容由nimo97整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

尼墨宝库 © All Rights Reserved.  蜀ICP备2024111239号-7