【发布时间】:2015-10-14 07:16:36
【问题描述】:
var value = 05000;
var addValue = 1;
如果我计算value + addvalue,那么它计算的值是错误的
var result = value + addValue;// it's return value is 20481
从快速观看结果中查看下图
但是如果我将值赋予 5000(值前没有 0),那么它的计算是正确的。为什么?
【问题讨论】:
-
05000 是八进制表示法。十进制值是 5 x 8^3 = 5 x 512 = 2560。如果您得到 20481,那么您将提供 050000(四个尾随零,而不是三个),即 5 x 8^4 = 5 x 4096 = 20480.
-
顺便说一句,如果你在一个数字前加上
0x或0X,它会读作十六进制数字。所以0x10 === 16和0x10 === 020都会返回true,除非strict mode。
标签: javascript angularjs calculator