获得徽章 0
今天遇到了一个问题:

我有一个字段a,拿到字段时候是string,但是传值的时候要求是number。

起初不知道字段a的具体值是什么,对我而言是左兜掏出放右兜了。我就直接Number(a)就没管了。

同事说我给他的字段是错的,他怎么找也没找到这个值。

我就一步步console都没问题,我就想Number(a)不对?那我就a - 0,哈哈哈。不出意料的还是不对。

a的值为"1817944422292856833",输出为 1817944422292856800。

JavaScript 的 Number 类型基于 IEEE 754 双精度浮点数 标准,其有效整数精度仅能覆盖到 2^53 - 1(即 9007199254740991)。超过这个范围的整数,无法被 Number 精确表示,会丢失末尾的精度(被舍入)。

a-0是隐式类型转换规则,当执行 a - 0 时,字符串 a(值为 "1817944422292856833")会先被隐式转换为 Number 类型(等价于执行 Number(a));

真是学到的知识都还给老师了。
展开
8
刚放了个屁,很响,但是没有想你那么响[如花]
20
exp+8
1
exp+8
评论
exp+8
评论
exp+8
评论
exp+8
评论
exp+8
评论
exp+8
评论
exp+8
评论
exp+8
2
exp+8
8
下一页
个人成就
文章被点赞 1
文章被阅读 114
掘力值 27
收藏集
0
关注标签
36
加入于