从JSON中舍入数字字符串
Javascript Rounding numeric strings from JSON
我有一个javascript twitter应用程序。如果我在Firebug中查看tweetid,它返回:344203233524330497,但当我在javascript中评估它时,它返回344203233524330500(四入最后两个数字)。
怎么回事?
任何想法?
谢谢你!
在Javascript中,整数是64位数字。这意味着最大的整数是253,即9007199254740992
。高于此值的数字将不准确:由于它们的内部存储方式,它们将看到一些"舍入"。
您显然是将该字符串计算为一个数字。如果你想保持它的准确性,你必须避免将其转换为数字,并将其保持为字符串。
关于JS中数字精度的更多信息,请参阅答案
JavaScript在不丢失精度的情况下可以表示的最大Integer值是9007199254740992。
您的数字显然更大,因此JavaScript将使用浮点数,这缺乏精度。因此,在这种情况下,似乎最后两个数字是四舍五入的。
直接使用字符串表示,或者,如果必须使用实际的数字值,请参考一些BigMath库。
相关文章:
- 制作一个regex来验证只有一个数字的字符串
- 如何限制一个字段只接受4个数字字符作为输入,并获得'It’这是潜水警报
- Javascript中的正则表达式,用于只有数字的字符串,并且不应在除数字以外的任何位置包含任何字符
- 为什么Javascript中的整数加空格加字符串会导致数字和字符串的总和?(2++'22'=24)
- 在另一个由非字母数字字符分隔的字符串中搜索(任何)字符串
- 角度.js - 将带有特殊字符和数字的字符串转换为数组并使用 ng-repeat 显示
- 用于测试字符串是否具有数字字符的条件
- 正则表达式检查字符串是否仅包含字母数字字符和空格 - javascript
- 如何在 Javascript 中从字符串的开头和结尾修剪所有非字母数字字符
- Javascript字符串替换-RegEx用于非字母数字字符,如Backslash、Greater Than等
- 如何在正则表达式中用一个S或E字符和JavaScript中的数字分隔字符串
- Javascript正则表达式,用于匹配空字符串、非数字字符或超过1位的数字
- 如何使用javascript从数组中的字符串中删除alpha数字字符
- 当字符串包含非数字字符时,parseFloat()是如何工作的?
- Javascript中包含非数字字符的字符串中的数字数组
- 在Javascript中从字符串中提取字母数字字符的快速方法
- 如何从包含字符和数字的字符串中提取最后一个数字
- 用于检查字符串是否至少包含3个字母数字字符的最有效正则表达式
- 对字符串中至少包含一个字母数字字符的单词进行计数
- 将字符串中任何非字母数字字符的多次出现减少到一个,**不删除**