4 个回答

原因分析:js在进行浮点型数值的运算的时候会出现不精确的现象,计算机进行二进制和十进制转换的过程中不精确;

例如:

0.1+0.2 = 0.30000000000000004;
2.4/0.8 = 2.9999999999999996;

解决办法:
1、直接使用toFixed

var num = 0.1+0.2;
var n=num.toFixed(2);

2、
先将数字转换为整数,再做其他运算,就是乘以10的n次方;
//项目中用到的利率转换过程,rate为利率变量

var zeroLast = (rate + '').split('.')[1],
var borrowRate = !!zeroLast ? Math.pow(10,zeroLast.length) : rate;

检查一下是否有进行运算,我觉得是js的精度问题。

后台传过来的值是多少?1.81999999之前

js的数值转换精度是个老生常谈的问题了, 网上有很多fix的方法, 可以搜一下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题