#javascript #html
Вопрос:
Мой javascript перебирает набор тегов и принимает их внутренний текст, содержащий плавающие числа.
var total_amount = 0.00; function update_totals() { total_amount = 0; tableRows = document.querySelectorAll('[id^="amount_"]'); for (var i = 0, len = tableRows.length; i lt; len; i ) { total_amount = total_amount parseFloat(tableRows[i].innerText).toFixed(2); } tax = parseFloat(total_amount * 5/100).toFixed(2); gross_amount = parseFloat(total_amount tax); console.log(total_amount); console.log(tax); console.log(gross_amount); }
Мой внутренний текст элементов составляет 3800.00 и 2599.99 Но консоль.журнал показывает
03800.002599.99 Nan 3800.002599
Даже после предоставления parseFloat он рассматривает значения как строку.
Требуемая Производительность
6399.99 //3800 2599.99 319.99 // 6399 * 5/ 100 6719.98 // sum of two numbers above
Комментарии:
1.
toFixed
возвращает строку.2. Как же тогда округлить до двух цифр?
3.
Number(parseFloat(total_amount * 5/100).toFixed(2));
— это будет облавой .
Ответ №1:
заменять
tax = parseFloat(total_amount * 5/100).toFixed(2);
с
tax = Number(parseFloat(total_amount * 5/100).toFixed(2));