我在javascript中有从01(int)到09(int)的数字,我想为每一个添加1(int).
例如:
01 + 1 = 2
02 + 1 = 3
Run Code Online (Sandbox Code Playgroud)
但
08 + 1 = 1
09 + 1 = 1
Run Code Online (Sandbox Code Playgroud)
我知道解决方案.我把它们定义为float类型.
但我想知道,这个结果的原因是什么?
谢谢.
与其他语言一样,Javascript可以0将以八进制开头的数字视为对象.这意味着只有数字0到7才有效.
似乎正在发生的是,08并且09被视为八进制,但由于它们具有无效字符,因此这些字符被默默地忽略.所以你实际计算的是0 + 1.
或者,可能是整个08被忽略并0取而代之.
最好的方法是尝试028 + 1看看你是否得到3或1(或者甚至可能是30解释真的很奇怪).
| 归档时间: |
|
| 查看次数: |
1568 次 |
| 最近记录: |