为什么(00123+34351)在javascript、java和python中返回34434?正确答案是34474
在javascript中,输出34434 在python中,输出34434为什么(00123+34351)在javascript、java和python中返回34434?正确答案是34474,javascript,python,math,addition,base,Javascript,Python,Math,Addition,Base,在javascript中,输出34434 在python中,输出34434 然而,删除前导零即123+34351给出了正确答案,即34474不确定Java,但在JavaScript和Python 2中,以0开头的数字是八进制数字,即00123实际上是十进制的83 JavaScript:0是八进制的常见前缀,其十进制数为83。做 console.log(00123 + 34351); //in javascript, outputs 34434 print(00123 + 34351); //in
然而,删除前导零即123+34351给出了正确答案,即34474不确定Java,但在JavaScript和Python 2中,以0开头的数字是八进制数字,即00123实际上是十进制的83 JavaScript:0是八进制的常见前缀,其十进制数为83。做
console.log(00123 + 34351); //in javascript, outputs 34434
print(00123 + 34351); //in python, outputs 34434
相当于
console.log(00123+34351)
编辑:请注意,在python 3+中,前缀是0o否,正确答案是34434 base 10。在许多语言中,前导为0的数字是八进制的,因此加法运算是123进制8+34351进制10。将八进制整数转换为十进制,您将看到基本原理。仅在Python 2.x中。。。因为它们将00解释为八进制前缀,所以较新的python不再允许这样做,而是需要0o前缀。0o123是83位小数,非常有意义。
console.log(83+34351)