Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Странное число после сложения на jquery

Denis Chernykl Знаток (281), закрыт 4 года назад
Подскажите пожалуйста как получить целое число без всяких e и т. д.

Вот сайт где этот калькулятор www.getclean.com.ua

Получается когда водишь м2 и потом выбираешь любую услугу, калькулятор в итоге выводит примерно такой результат 2.3902002225122e+310390.0 хотя не где нет чисел с плавающей точкой

Подскажите пожалуйста что не так делаю
Дополнен 4 года назад
let price1 = +$('#1').text().replace(/[^0-9]/g, ''),
price2 = +$('#2').text().replace(/[^0-9]/g, ''),
price3 = +$('#3').text().replace(/[^0-9]/g, ''),
price4 = +$('#4').text().replace(/[^0-9]/g, ''),
price5 = +$('#5').text().replace(/[^0-9]/g, ''),
price6 = +$('#6').text().replace(/[^0-9]/g, ''),
price7 = +$('#7').text().replace(/[^0-9]/g, ''),
price8 = +$('#8').text().replace(/[^0-9]/g, ''),
price9 = +$('#9').text().replace(/[^0-9]/g, ''),
price10 = +$('#10').text().replace(/[^0-9]/g, ''),
price11 = +$('#11').text().replace(/[^0-9]/g, ''),
price12 = +$('#12').text().replace(/[^0-9]/g, ''),
price13 = +$('#13').text().replace(/[^0-9]/g, ''),
price14 = +$('#14').text().replace(/[^0-9]/g, ''),
price15 = +$('#15').text().replace(/[^0-9]/g, ''),
price16 = +$('#16').text().replace(/[^0-9]/g, ''),
price17 = +$('#17').text().replace(/[^0-9]/g, ''),
price18 = +$('#18').text().replace(/[^0-9]/g, ''),
price19 = +$('#19').text().replace(/[^0-9]/g, ''),

// chekbox
price20 = +$('#20').text().replace(/[^0-9]/g, ''),
price21 = +$('#21').text().replace(/[^0-9]/g, ''),
price22 = +$('#22').text().replace(/[^0-9]/g, ''),
price23 = +$('#23').text().replace(/[^0-9]/g, ''),
price24 = +$('#24').text().replace(/[^0-9]/g, ''),
price25 = +$('#25').text().replace(/[^0-9]/g, ''),
price26 = +$('#26').text().replace(/[^0-9]/g, ''),
price27 = +$('#27').text().replace(/[^0-9]/g, ''),
price28 = +$('#28').text().replace(/[^0-9]/g, ''),
price29 = +$('#29').text().replace(/[^0-9

let sum = sum1 + sum2 + sum3 + sum4 + sum5 + sum6 + sum7;

$('#itog').text( sum + ' грн');
Лучший ответ
Виктор Мальков Мудрец (10308) 4 года назад
вот отсюда ошибка: section class="calculate" id="22"
На странице оказалось два элемента с id="22", один - элемент калькулятора, другой эта секция. Откуда берётся айди секции, не знаю.
Остальные ответы
Голова Робота Просветленный (36328) 4 года назад
Какая-то ошибка в расчётах. Выложи код вычисляющий сумму, чтоб не искать.
У тебя получается очень большое число. Если его написать без "E", оно не поместится на экране.

Каким образом price1 попадает в сумму?
Изучай циклы.
Андрей Высший разум (425764) 4 года назад
1. Если ты вводишь значения в теги input, то для получения этих значений надо использовать НЕ .text(), а .val(): http://jquery.page2page.ru/index.php5/Работа_с_атрибутом_value

2. В представленном тобой коде я вижу присваивания переменным price1...price29, но не вижу, где и как вычисляются значения sum1...sum7.

3. Я бы записал регулярку поиска нечисловых символов в виде /\D+/g

4. Не надо value="?". Для вывода подсказки в незаполненном поле есть https://webref.ru/html/input/placeholder

Что касается вида, в котором выводится число, то в JavaScript НЕТ целых чисел. В этом языке ВСЕ числа ТОЛЬКО с плавающей запятой. Другое дело, что целые числа длиной до 53 битов могут быть ТОЧНО записаны типом double - потому такие значения ВЫГЛЯДЯТ при выводе как целые.

Но если длина результата вычислений вылезла за 53 бита (как в твоём примере), то число выводится в виде вещественного значения.

P.S, Сейчас в JS добавили числа неограниченной длины, но это совсем другая история.
Похожие вопросы