如下:
double score = (double)0.1234;
System.out.println("score * 10 = " + score);当score = 0.1234时,结果是:score * 10 = 1.234
当score = 0.12345时,结果是:scoer * 10 = 1.2345000000000002(问题就在这里)为什么在score = 0.12345时,会出现不精确的情况,请各位赐教,谢谢!
double score = (double)0.1234;
System.out.println("score * 10 = " + score);当score = 0.1234时,结果是:score * 10 = 1.234
当score = 0.12345时,结果是:scoer * 10 = 1.2345000000000002(问题就在这里)为什么在score = 0.12345时,会出现不精确的情况,请各位赐教,谢谢!
Item 31 如果要求精确答案,则尽量避免使用float和double
解决办法是使用BigDecimal
为什么java书中说,缺省时是浮点数,但我在JBUiderX里面,我给float变量赋一个值为12.123它提示精度不够,要定义成DOUBLE型,但我把12.123改为123.123f就OK了是不是在JBUIDERX里面缺省是DOUBLE型
结帖了。