double数据类型四舍五入的bug

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了double数据类型四舍五入的bug相关的知识,希望对你有一定的参考价值。

最近维护项目出现了一个很奇怪的bug

技术分享

0.565并没有四舍五入,结果是0.56;

技术分享

可是0.555却四舍五入了,变成了0.56;

技术分享

但是0.575依然没有四舍五入;

这可能就是double类型的问题了,也不算bug,类似于0.5会变成0.49999999的问题一样,计算机解析double类型时实际数值和显示不一样。

解决办法就是把double类型改成decimal类型,涉及到财务金融方面的计算时,尽量都要用decimal。

具体参考http://lj.soft.blog.163.com/blog/static/79402481201032210173381/

以上是关于double数据类型四舍五入的bug的主要内容,如果未能解决你的问题,请参考以下文章

Double类型的数据四舍五入保留小数点后两位

java中将一个double类型的数强制转换为long 型是四舍五入吗?

请教c#中double类型转化为long类型的方法, 以及对double四舍五入的方法

C语言里,double类型的数据可以精确到小数点后几位?

MATLAB中的数据从double类型强制转化为uint8其舍入用的是四舍五入,附MATLAB基本数据类型

C语言编写程序,对一个double型数据进行四舍五入,要求保留两位有效小数,求算法。