2012-02-04 3 views
2

я пытался добавить два числа в Javascript:Приставка ноль изменяет выход в число дополнение

var output; 
output = parseInt(a)+parseInt(b); 
alert(output); 

Это дает неправильный output значение, например, если a = 015, и b = 05. Почему это так? Поэтому Ожидаемый результат выше примера должно быть 20.

+1

В следующий раз, а также отметить, что «неправильный выход» является. –

ответ

7

Если префикс вашего номера с 0, вы указываете их в базе 8. 015 составляет 13, а сумма составляет 18

Используйте второй parseInt аргумент, чтобы заставить основание:

var a = '015', b = '05'; 
var output; 
output = parseInt(a, 10) + parseInt(b, 10); 
alert(output); // alerts 20 
+0

Спасибо @phihang, он отлично работал .. –

0

во многих языках программирования номера, начинающиеся с ведущего 0, указывают на 8-ю позицию 8-го числа. здесь вы даете восьмеричное число в качестве входных данных и ожидаете выход в десятичной системе счисления и то причина, что вы говорите выход неправильно (что является правильной !! WRT восьмеричного сложения)

solution 1 : you can add two octal numbers and convert the result to decimal 

solution 2 : convert the octal numbers to decimal and then add them 
Смежные вопросы