Javascript Float + Float = String?

When I run this, it returns NaN . If I am not parseFloat, I get 2 lines. What am I missing? I would say that my result should always be floating?

 function calculate(i) { var result = 0.0; $j(".t" + i + " input").each(function () { var number = $j(this).val(); number = number.replace(",", "."); if (parseFloat(number) != NaN) { result = parseFloat(result); number = parseFloat(number); result += number; } }); console.log(result); return result; } 
+5
source share
1 answer

You are not checking the number correctly. To check if the number NaN isNaN function:

 if (!isNaN(parseFloat(number))) { ... } 

Note that NaN === NaN always returns false .

You can learn more about this here: Why is NaN === NaN false?

Here is the complete code:

 function calculate(i) { var result = 0; $j(".t" + i + " input").each(function () { var number = $j(this).val(); number = parseFloat(number.replace(",", ".")); if (isNaN(number)) { return; } result += number; }); console.log(result); return result; } 
+7
source

Source: https://habr.com/ru/post/1233034/


All Articles