26

I want to parse a string and I used parseFloat(), but it removes all the trailing zeroes. How to prevent this - I need to parse the string exactly - if I have 2.5000, I need exactly the same result as a floating-point number - 2.5000.

4

1 回答 1

25

你可以做

parseFloat(2.5).toFixed(4);

如果您需要完全相同的浮点数,您可能需要计算出数量

function parseFloatToFixed(string) {
  return parseFloat(string).toFixed(string.split('.')[1].length);
}

console.log(parseFloatToFixed('2.54355'));

但我真的不明白为什么你甚至需要使用 parseFloat 呢?javascript 中的数字不保留浮点数。因此,您必须将它们保留为字符串,并将它们作为浮点数进行计算。

也不要忘记 toFixed 在不同的浏览器中可能有奇怪的舍入问题,例如

console.log((0.1).toFixed(20));
于 2014-07-22T14:04:16.317 回答