2014-02-10 65 views
13

我在使用javascript進行數字比較時遇到了大問題。Javascript浮動比較

劇本指責比較「7 < 10」是錯誤的。

console.clear(); 

var min = parseFloat("5").toFixed(2); 
var max = parseFloat("10").toFixed(2); 
var value = parseFloat("7").toFixed(2); 

console.log(min, max, value); 

console.log(value > min); // OK. 
console.log(value < max); // ---- false ?????? 

任何人都知道什麼是happing?

+1

當一切都失敗了... [ECMA-262§15.7.4.5(HTTP: //ecma-international.org/ecma-262/5.1/#sec-15.7.4.5) – RobG

+1

http://stackoverflow.com/questions/3343623 –

+2

重複[Javascript:比較兩個浮點值](http: //stackoverflow.com/questions/3343623/javascript-comparing-two-float-values) –

回答

33

事實證明.toFixed()返回一個字符串 - 嘗試添加parseFloat比較值之前看到的結果:

console.log(parseFloat(value) < parseFloat(max)); // ---- now true 
+1

謝謝!!!我沒有注意到.toFixed返回字符串。 –