美文网首页
算账的精度(JS 浮点数计算与四舍五入问题)

算账的精度(JS 浮点数计算与四舍五入问题)

作者: LUGY | 来源:发表于2019-05-26 22:25 被阅读0次

    最近做一些算账问题,浮点数方面会出现错误,究其原因,JS对于number类型,在四则运算或调用toFixed这样的方法时,实际是使用的二进制形式进行计算,即计算的数值并非看到的十进制数值,所以结果总是不准确。

    处理这类问题,一个方法是将小数全部倍数到整数,再缩小回小数,但在倍数化整数过程中(依然是四则运算)依然会出现精度错误,所以这种方法依然不准确。

    总的来说,直接用浮点数在四则运算或toFiexed时都会出错,所以最彻底的方法是,将浮点数转换成字符串,记录小数点位置,去掉小数点,转换成整形,再用整形计算,计算结果转字符串,将小数点写回来,最后转成浮点数。这样无论四则运算还是四舍五入,都不会精度丢失。

    相关文章

      网友评论

          本文标题:算账的精度(JS 浮点数计算与四舍五入问题)

          本文链接:https://www.haomeiwen.com/subject/jqqqtctx.html