Search code examples
javascriptcomparisonfloating-pointnumbers

Javascript: Comparing two float values


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?


Solution

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

    I guess you want to compare something like:

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

    which rounds to two decimals