toPrecision将小数点后的尾随零加到预期的总数中

时间:2018-12-14 08:02:49

标签: javascript decimal precision

经过一个小时的搜索,我要问这个问题。

我的任务是将数字限制为总共8个数字。 toPrecision可以按预期工作,除了:

一些测试用例:

  1. 4828.39019785-> 4828.3902(预定)
  2. 0.39019785-> 0.39019785(尽管它返回总计9位数字,但还是可以的)
  3. 0.0039019785-> 0.0039019785(无用,返回11位数字)

toPrecision似乎没有达到预期的效果,即返回了我们想要的确切数字。它将小数点后的零与小数点后的零相加到位数总数中。

我的意图:

  1. 0.39019785-> 0.3901978(恰好8位数字,包括0)
  2. 0.0039019785-> 0.0039019(恰好是8位数字,包括3个零)

2 个答案:

答案 0 :(得分:0)

您可以使用toPrecision()功能。 例如:

console.log(Number(1).toPrecision(8));

这会给你"1.0000000"

答案 1 :(得分:0)

var num1 = 0.39019785;
var num2 = 0.0039019785;

const exactPrecision = (number, precision) => number.toPrecision(precision).replace(new RegExp("((\\d\\.*){"+precision+"}).*"), '$1');

console.log(exactPrecision(num1, 8))
console.log(exactPrecision(num2, 8))

希望有帮助!

toPrecision在前导0时不执行您想要的操作,因此我创建了一个函数,该函数摆脱了以后不需要的内容。