为什么在JavaScript中0700/100等于4.48,而0900/100等于9?

时间:2019-11-15 12:53:27

标签: javascript

console.log(0700/100) // result: 4.48
console.log(0900/100) // result: 9

我正在通过创建一个计算器应用程序来学习vue,并且正在使用数组来存储变量。当我在实际操作数之前输入0进行测试时,我对上述行为感到困惑。

2 个答案:

答案 0 :(得分:2)

由于0700以零开头,因此JS将其视为八进制(以8为底的数字)。 0900不能为八进制,因此JS会将其视为常规的十进制(以10为底)数字。

0700 octal = 448 decimal,所以0700 (octal) / 100 (decimal) = 4.48

答案 1 :(得分:1)

当您在数字前放置0时,js会将其强制转换为八进制,等于448。但是0900包含9,因此它不能为八进制,因此将等于900。