在对两个float类型的数据进行四则运算的时候,可能会导致出现xx.99999999或x.00000001等情况。
例
在上述例子中可以看到,0.55+0.02并不等于0.57,因为这个结果在内存中其实是0.579999999或0.570000000001所以并不等于0.57。这个问题在底层为C的程序中基本都会出现,例如js,python等等
Js例子
Python例子
这种情况会直接影响到程序的准确性,此问题在遇到统计计算、报表程序中尤为重要,解决办法就是用内置的四则云算函数来去计算,
Php 使用bc函数库bcadd bcsub bcmul bcdiv
Js建议使用number.js库
Python使用decimal模块来解决
下一篇: Mysql触发器