首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

两个float相减时丢失精度的解决方法

2013-11-15 
两个float相减时丢失精度的解决办法?????? 运行结果:a-b1.022那么这么写呢??????? a 2.1235f ????????

两个float相减时丢失精度的解决办法

?????? 运行结果:a-b=1.022

那么这么写呢?

?????? a = 2.1235f; ??

?????? b = 1.1012f; ??

?????? System.out.println("a-b=" + (a-b));

?????? 运行结果:a-b=1.0223001

?????? 可我们的期望值是:a-b=1.0223

所以float的精度到了4位之后就得这么写:

?????? BigDecimal c = new BigDecimal(Float.toString(a)); ??

?????? BigDecimal d = new BigDecimal(Float.toString(b)); ??

???????System.out.println("a-b=" + (c.subtract(d)).floatValue());

?????? 运行结果:a-b=1.0223

?

不信你自己试试!

?

原因请参考:[转载]http://blog.csdn.net/fancylovejava/article/details/12027039

热点排行