JS 控制小数位数的实现代码

  昨天在用JS对前台浮点数进行合算时发现:

  0.05+1.08=1.1300000000000001

  上网查一查的确存在这种Bug,除了位数上控制之外也没什么也好的方法(希望高手能提出

  其它思路)。

  于是自己编写一个控制小数位数的JS方法,解决开发燃眉之急

  

复制代码 代码如下:

  //小数位数控制,可以四舍五入

  function Fractional(n) {

  //小数保留位数

  var bit = 2;

  //加上小数点后要扩充1位

  bit++;

  //数字转为字符串

  n = n.toString();

  //获取小数点位置

  var point = n.indexOf('.');

  //n的长度大于保留位数长度

  if (n.length > point + bit) {

  //保留小数后一位是否大于4,大于4进位

  if (parseInt(n.substring(point + bit, point + bit + 1)) > 4) {

  return n.substring(0, point) + "." + (parseInt(n.substring(point + 1, point + bit)) + 1);

  }

  else {

  return n.substring(0, point) + n.substring(point, point + bit);

  }

  }

  return n;

  }