2017-01-16 2 views
-2

JavaScript:ява скрипт: 3 + 0 = 30

console.log('adding' + addThis + '+' + p1 +'=' + (addThis + p1));  

консоли в браузере возвращает: adding3+0=30

Im отладки цикл, который интерполирует два числа. Он отлично работает до addThis (сумма, которую необходимо добавить к исходному номеру) составляет ровно 3 и p1 (исходное значение) равно 0. Каждый раз, когда разница (addThis) не имеет десятичных знаков, происходит неправильный расчет. Так же проблема:

adding6+0=60 ...or at.. 
adding9+0=90 

... во всех случаях в перерывах между работой штрафа (например возвратов консоли: adding3.5999999999999996+0=3.59999999999999960)

дозировать 'забывают' точку? Дозируйте эти значения как строки?

Я не могу разделить весь код, но проблема должна быть в этом простом вычислении правильно?

Большое спасибо за ваши мысли и знания! ;)

+0

Только что переключился с (addThis + p1) на (p1 + addThis). Теперь консоль возвращает: add3 + 0 = 03 ... это помогает, но все еще не очень и довольно функционально. Ответы все равно помогут, спасибо! – Sebe

+1

Отправьте свой цикл. Нам нужно посмотреть, откуда взялись 'addThis' и' p1'. –

+0

_ «Я не могу поделиться всем кодом» _ Мы не хотим, чтобы вы это делали. Мы хотим, чтобы вы представили [MCVE], с которым вы отлаживали эту проблему за последние пару дней. –

ответ

0

3 + 0 = 30. Похоже, что это строка (по крайней мере, любая переменная - строка). Вы можете повторно посетить строки, где эти значения переменных инициализируются/изменяются. Иначе вы можете использовать, как показано ниже:

addThis=Number(addThis); p1=Number(p1); 
console.log('adding' + addThis + '+' + p1 +'=' + (addThis + p1)); 
+0

Отлично! 'p1' преобразуется из строки ... Я тоже не знал простого объявления «Число». Так просто - но если вы не знаете об этом, вы не можете его найти. Haha Отличный день! – Sebe

+0

HaHaHa. У вас тоже есть отличный день! : D –

0

Если вы хотите, чтобы преобразовать строки в целые числа можно использовать parseInt function:

addThis = '3' 
 
p1 = '0' 
 
console.log('adding' + addThis + '+' + p1 +'=' + (parseInt(addThis) + parseInt(p1)))

+0

Спасибо, что работает. Но десятины теряются. Просто посмотрел, как работает parseInt - отлично знать и полезно, но мне нужны эти десятичные знаки;) – Sebe

Смежные вопросы