วันจันทร์ที่ 30 สิงหาคม พ.ศ. 2553

เกือบตายเพราะ Floating Point ของ C#

ไอ้ห่าแม่ม เล่นกรูซะ
บวกเลขไปบวกมา แม่ม มีทศนิยมมาต่อท้ายได้ไงว่ะ
SALES-DEDUCT=0.08000183
มูลค่าแค่ 0.08 แต่มี 183 มาต่อท้ายเฉยเลย
 
เปลี่ยนไปใช้ decimal แทบไม่ทัน
 
 

2 ความคิดเห็น:

ไม่ระบุชื่อ กล่าวว่า...

ตัวแปร Double ใช่ไหม? จะได้ไม่ต้องใช้อีกต่อไป
เปลี่ยนเป็น decimal แล้วหายใช่ไหม?

เต็ม

ไม่ระบุชื่อ กล่าวว่า...

ตัวแปรแบบ Real ตัว double น่าจะพอไหว
แต่ถ้าจะดีที่สุด ใช้ decimal ไปเลยดีกว่า
เพราะค่าที่ได้จาก real กับ double มันเกิดจากการ
คำนวณ ไม่ใช่ค่าที่เกิดจากการเก็บจริงๆ

ส่วนตัว decimal จะเก็บหลักหน้าทศนิยม กับหลังทศนิยม
ทำให้ไม่ผิดเพี้ยนชัวร์

จิ้งจกทัก