Почему JavaScript не преобразует числа в числа с плавающей запятой?

#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));