【发布时间】:2020-07-19 13:42:12
【问题描述】:
JavaScript 写入一个小数点后 2 位的数字,它会在十进制中显示 0?
我不担心四舍五入,因为我只接受小数点后 2 位数字
let num = 2.60
console.log(num) // result 2.6
它将返回2.6,但我想要2.60。我可以使用to.Fixed(2),但它会以字符串格式返回。
let num = 1.23
console.log(num) // result 1.23
我知道to.Fixed(),但它返回字符串。我想要数字格式,它以数字格式而不是字符串格式显示 1.00 和 1.60。我使用了parseFloat(num.toFixed(2)),但它没有以十进制显示最后一个0 值。
【问题讨论】:
-
@David784 这个老问题的所有答案都很糟糕。根本问题是,JavaScript 与几乎所有现代主流语言一样,使用 二进制 浮点表示。
-
@Pointy 是的,我同意,解决这个问题的方法不是尝试更改数字,而是让不同的变量以特定数字所需的格式保存表示
-
简单,你不能。如果您想要一个保留十进制 0 的视觉表示,那么您必须使用字符串,而不是任何数字格式。
-
前导零和尾随零不是二进制浮点表示的一部分,因为它们对实际数值没有影响。事情就是这样。如果您希望显示一定数量的零,则转换为字符串以用于显示目的并保持存储不变。
标签: javascript node.js floating-point numbers decimalformat