ถ้าเพื่อนๆเคยเขียน java โดยใช้ object Double แล้ว เช็คเงื่อนไข == ที่ตัวแปรทั้งสองมีค่าเท่ากันแต่ แต่ได้ผลลัพธ์เป็น false เพื่อนก็คงจะเคยเจอเหตุการณ์แบบนี้กันมาบ้านนะครับ โดยปกติแล้วการจะเช็คว่าตัวแฟรทั้งสองมีค่าเท่ากันหรือไม่ใน Double จะไม่ทำการใช้เครื่องหมาย == นะครับแต่จะใช้วิธีนี้แทนครับ
Double x = 5; Double y = 5; System.out.println((x-y)<1E-6);
แค่นี้เราก็จะสามารถเช็คได้แล้วว่า Double ทั้งสองมีค่าเท่ากันหรือไม่ ลืมบอกไปว่า 1E-6 คือ 1คูณ10กำลัง-6นั้นเองครับ
Last 5 posts by ta
- เริ่มต้นกับ javafx - January 7th, 2010
- protected default ในjavaมันคืออะไรกันแน่ - January 7th, 2010
- สร้างไฟล์ในมือถือ ทำยังไงหว่า - January 7th, 2010
- ?? เครื่องหมาย | ในเงื่อนไขต่างๆทำไมถึงเขียน 1 อัน หรือ 2 อันก็ได้นะ - January 7th, 2010
- เริ่มต้นการเขียนโปรแกรมบนโทรศัพท์มือถือ - January 6th, 2010

ผมว่ามัน compile error ตั้งแต่ Double x= 5; แล้วหละ
จริงๆ ใช้ doubleValue() method ก็ได้นะ
เรื่อง double x=5; น่าจะสะเพร่าครับ ต้องเป็น double x = 5.0; แต่ผมไม่แน่ใจบาง version ที่เค้าใช้อาจจะมี autoboxing ครับ
ส่วนหากใช้ doubleValue() แล้วเอามา == ลองดูกรณีนี้ครับ
อันแรกจะได้เป็น false ครับ ส่วนหากใช้การเปรียเทียบแบบด้านล่างจะเปรียบเทียบถึงจุดทศนิยมครับ