我有这个功能,它将所有数字四舍五入到8位小数。

exports.roundDown = function(number, decimals) {
  try {
    if (!exports.isNumeric(number)) {
      return number;
    }

    decimals = decimals || 8;

    if (!exports.isNumeric(decimals)) {
      return number;
    }

    const ret =  ( Math.floor( number * Math.pow(10, decimals) ) / Math.pow(10, decimals)*1);

    return ret; //(ret < 0.000001) ? 0 : ret;
  } catch(e) {
    return number;
  }
}


我的问题是像0.00000003这样的数字会四舍五入为0.00000002,而不是发送实数(0.00000003),其他数字也可以正常工作。

任何想法如何解决这个问题?

最佳答案

您是否尝试过固定?

var num = 0.00000002473;
var n = num.toFixed(8);
//n contains 0.00000002

10-08 17:55