views:

183

answers:

1

I have this JavaScript function:

Contrl.prototype.EvaluateStatement = function(acVal, cfVal) {

    var cv = parseFloat(cfVal).toFixed(2);
    var av = parseFloat(acVal).toFixed(2);

   if( av < cv) // do some thing
}

When i compare float numbers av=7.00 and cv=12.00 the result of 7.00<12.00 is false!

Any ideas why?

+9  A: 

toFixed returns a string, and you are comparing the two resulting strings. Lexically, the 1 in 12 comes before the 7 so 12 < 7.

EDIT

I guess you want to compare something like (Math.round(parseFloat(acVal)*100)/100)

which rounds to two decimals

second
Rounding to two decimals while keeping a number: `Math.round(parseFloat(cfVal)*100)/100`
Tomalak