ตัว Code ผมเขียนไว้แบบนี้ครับ ใช้สำหรับ Generate option ที่เป็นตัวเลขเรียงกันแบบ Auto
function genOption(obj,max,min,increment){
var i = min;
while (i<=max){
$('#'+obj).append(''+i+'');
i = i+increment;
}
}
ซึ่งถ้าผมใส่ increment เป็นเลขตัวเต็มอย่าง 1 หรือ 50 ก็ทำงานได้ไม่มีปัญหาครับ
แต่ถ้าใส่เป็น ทศนิยม มันจะเพียนๆ ครับ
เช่น
genOption('Cre',8,0.1,0.1)
มันจะมีค่าแบบ
0.1
0.2
0.3000000000...4
0.3999999999999
อะไรแบบนี้ด้วยครับ มันเกิดจากอะไรครับ
Read this article: http://javascript.about.com/od/hintsandtips/a/Floating-Point-And-Javascript.htm
ปัญหาของ floating point ครับ นั่นคือ เลขฐานสอง จะไม่สามารถแทนค่าเลขทศนิยมตรง ๆ บางตัวได้ครับ
ลองอ่านลิ้งค์ article ที่ความเห็นบนลงไว้นะครับ น่าจะทำความเข้าใจได้ดีขึ้น
ลอง i.toFixed(2) ดูครับ เผื่อจะช่วยได้
ref: www.e3schools.com