使用parseFloat完成后没有获得正确的值

时间:2016-11-28 10:20:49

标签: javascript math

我正在计算一个值。见下文..

的console.log(parseFloat(parseFloat(0.670).toFixed(3)));

我为此得到0.67,但根据数学规则,预计一个是0.670。而且我知道为什么这是......这是因为我将它转换为浮动。

问题是我必须将它转换为浮动,请帮助我找到合适的。

4 个答案:

答案 0 :(得分:1)

var num = 0.670;完全等于var num = 0.67;

浮点变量不可能记住其有效数字。您必须手动跟踪其精度。

计算完成后将数字显示为字符串没有任何害处。 console.log(num.toFixed(3));> 0.670

答案 1 :(得分:1)

console.log(parseFloat(0.670).toFixed(3));

答案 2 :(得分:0)

我认为我没有正确地阅读这个问题。

function toPrecision(num, length = 0) {
  const numArr = num.toString().split('')
  const index = numArr.indexOf('.')
  const decimal = index > -1 ? index + 1 : 0
  return Number(numArr.slice(0, decimal + length).join(''))
}

console.log(
  toPrecision(0.6699, 0),
  toPrecision(0.6699, 1),
  toPrecision(0.6699, 2),
  toPrecision(0.6699, 3),
  toPrecision(10006688.669966, 4)
)

答案 3 :(得分:-1)

var a = parseFloat(parseFloat(0.6699).toFixed(3)) + "<br>";
document.getElementById("demo").innerHTML = a;
<p id="demo"></p>