У меня есть эта функция JavaScript:
Contrl.prototype.EvaluateStatement = function(acVal, cfVal) {
var cv = parseFloat(cfVal).toFixed(2);
var av = parseFloat(acVal).toFixed(2);
if( av < cv) // do some thing
}
Когда я сравниваю числа плавающие av=7.00
и cv=12.00
результат 7.00<12.00
false
!
Какие-либо идеи, почему?
toFixed возвращает строку, и вы сравниваете две получившиеся строки. Лексически, 1 в 12 стоит перед 7, поэтому 12 < 7.
Полагаю, вы хотите сравнить что-то вроде:
(Math.round(parseFloat(acVal)*100)/100)
которое округляется до двух десятичных дробей