在我的情况下,我使用parseFloat()将字符串值'9999999999999999'转换为整数。但它转换为下一个数字,即10000000000000000.但我需要将它转换为该数字之前,即999999999999999998.我在谷歌搜索了一段时间。但无法明确实现这一点。
答案 0 :(得分:0)
试试这个
document.getElementById("demo").innerHTML=Math.round(9999999999999999-2);
<强>输出强>
9999999999999998
答案 1 :(得分:0)
此数字太大,无法在JavaScript Number值中精确表示。因此,没有任何数量的转换会像您想要的那样可靠/精确地为您提供值。
即。 (9999999999999999-1)===(9999999999999999)
会返回true
,但(9999999999999998)===(9999999999999999)
会返回false。
如果您需要JavaScript中的这种高精度(类似于许多其他语言),您需要使用专门的数据类型(遗憾的是,JavaScript中没有内置的“BigInteger”类型。)
答案 2 :(得分:0)
你需要使用一些外部的javascript库来处理这样的大数字,导致你不能在javascript整数中丢失预设的最大数字是9007199254740992(解释:What is JavaScript's highest integer value that a Number can go to without losing precision?)
这里有一些链接,供人们讨论一些用于javascript大数字的库。 How to deal with big numbers in javascript