JavaScript: Сравнение двух значений плавающих

У меня есть эта функция 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!

Какие-либо идеи, почему?

25
задан Tomalak 27 July 2010 в 12:45
поделиться

1 ответ

toFixed возвращает строку, и вы сравниваете две получившиеся строки. Лексически, 1 в 12 стоит перед 7, поэтому 12 < 7.

Полагаю, вы хотите сравнить что-то вроде:

(Math.round(parseFloat(acVal)*100)/100)

которое округляется до двух десятичных дробей

36
ответ дан 28 November 2019 в 20:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: