为什么 (00123 + 34351) 在 javascript、java 和 python 中返回

console.log(00123 + 34351); //in javascript, outputs 34434

print(00123 + 34351); //in python, outputs 34434

在 javascript 中,输出 34434 在 python 中,输出 34434


然而,删除前导零即 (123 + 34351) 给出了正确的答案,即 34474


噜噜哒
浏览 134回答 3
3回答

大话西游666

0是八进制的常用前缀,十进制数是 83。做console.log(00123+34351)相当于console.log(83+34351)编辑:请注意,在 python 3+ 中,前缀是0o

慕侠2389804

不,正确答案确实是 34434(以 10 为基数)。在许多语言中以 0 开头的数字是八进制的,因此您的加法运算是 123(以 8 为底)+ 34351(以 10 为底)。将八进制整数转换为十进制,您就会明白其中的道理。

幕布斯7119047

不确定 Java,但在 JavaScript 和 Python 2 中,以 开头的数字0是八进制数,即00123实际上是83十进制数。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python