Tags:

ตัว 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

อะไรแบบนี้ด้วยครับ มันเกิดจากอะไรครับ

Get latest news from Blognone
By: sugarcane
AndroidUbuntu
on 2 August 2012 - 19:52 #452286
By: xenogew
ContributorAndroidWindows
on 3 August 2012 - 10:46 #452583
xenogew's picture

ปัญหาของ floating point ครับ นั่นคือ เลขฐานสอง จะไม่สามารถแทนค่าเลขทศนิยมตรง ๆ บางตัวได้ครับ

ลองอ่านลิ้งค์ article ที่ความเห็นบนลงไว้นะครับ น่าจะทำความเข้าใจได้ดีขึ้น

By: JavaDevil
iPhoneUbuntuIn Love
on 4 August 2012 - 10:07 #453153

ลอง i.toFixed(2) ดูครับ เผื่อจะช่วยได้

ref: www.e3schools.com