项目中的订单号生成规则为当前时间戳+一串序列号,形如:201211171658000001
但是在js中对订单号进行处理时发生了一个bug,就是js会对长度较长的数字进行处理。可以使用谷歌浏览器中的console.log();进行测试,结果如下:
console.log(20121117173100001);
20121117173100000 最后一位1被处理成了0
console.log(9999999999999999);
10000000000000000 值加了1
结论:对于此现象的原因还没找到,但是为了保险起见,我们在处理长度较长的数字时,最好是把数字在js转成字符串类型,这样就不会造成值不对的情况了。
本文讨论了在JavaScript中处理长数字时遇到的问题,特别是对于数字长度超过一定阈值时可能出现的处理异常,提供了将数字转换为字符串类型的解决方案以避免此类问题。
926

被折叠的 条评论
为什么被折叠?



