从JSON中舍入数字字符串

Javascript Rounding numeric strings from JSON

本文关键字:数字字符 字符串 数字 舍入 JSON      更新时间:2023-09-26

我有一个javascript twitter应用程序。如果我在Firebug中查看tweetid,它返回:344203233524330497,但当我在javascript中评估它时,它返回344203233524330500(四入最后两个数字)。

怎么回事?

任何想法?

谢谢你!

在Javascript中,整数是64位数字。这意味着最大的整数是253,即9007199254740992。高于此值的数字将不准确:由于它们的内部存储方式,它们将看到一些"舍入"。

您显然是将该字符串计算为一个数字。如果你想保持它的准确性,你必须避免将其转换为数字,并将其保持为字符串。

关于JS中数字精度的更多信息,请参阅答案

JavaScript在不丢失精度的情况下可以表示的最大Integer值是9007199254740992。

您的数字显然更大,因此JavaScript将使用浮点数,这缺乏精度。因此,在这种情况下,似乎最后两个数字是四舍五入的。

直接使用字符串表示,或者,如果必须使用实际的数字值,请参考一些BigMath库。

相关文章: