【发布时间】:2011-11-10 20:46:35
【问题描述】:
情况如下:我得到.9999999999999999,而我应该得到1.0。
我可以承受丢失小数位的精度,所以我使用.toFixed(15),这很有效。
四舍五入有效,但问题是我得到了1.000000000000000。
有没有办法四舍五入到小数位,但去掉多余的空格? p>
注意:.toPrecision 不是我想要的;我只想指定小数点后有多少个数字。
注2:我不能只使用.toPrecision(1),因为我需要对小数点后实际有数据的数字保持高精度。理想情况下,小数位数应与需要的位数一样多(最多 15 位)。
【问题讨论】:
-
关键是 .toFixed 返回一个字符串,因此只需通过数字将其往返然后返回字符串即可重新转换它,而不会出现尾随零。
-
@Nathan:只是为了澄清。您是否只想删除使用 toFixed() 获得的 string 中的尾随零?
标签: javascript math floating-point rounding