ใน Java ฉันต้องการแปลงคู่เป็นจำนวนเต็มฉันรู้ว่าคุณทำสิ่งนี้:
double x = 1.5;
int y = (int)x;
คุณจะได้รับ y = 1 หากคุณทำสิ่งนี้:
int y = (int)Math.round(x);
คุณน่าจะได้ 2 อย่างไรก็ตามฉันสงสัยว่า: เนื่องจากบางครั้งการแทนค่าจำนวนเต็มสองครั้งดูเหมือน 1.9999999998 หรือบางอย่างมีความเป็นไปได้หรือไม่ที่การคัดเลือกคู่ที่สร้างขึ้นผ่านทาง Math.round () จะยังคงส่งผลให้ตัวเลขที่ถูกตัดทอนลง กว่าจำนวนปัดเศษที่เรากำลังมองหา (เช่น: 1 แทนที่จะเป็น 2 ในรหัสที่แสดง)?
(และใช่ฉันไม่ได้หมายความว่ามันเป็นเช่นนี้: มีใด ๆค่าสำหรับ X, Y ที่จะแสดงผลที่เป็นมากกว่าการตัดทอนเป็นตัวแทนโค้งมนของ x หรือไม่?)
ถ้าเป็นเช่นนั้น: มีวิธีที่ดีกว่าในการเพิ่มค่า int สองเท่าโดยไม่เสี่ยงต่อการตัดทอนหรือไม่?
คิดอะไรบางอย่าง: Math.round (x) ส่งคืน long ไม่ใช่สองเท่า ดังนั้น: เป็นไปไม่ได้ที่ Math.round () จะส่งคืนตัวเลขที่มีลักษณะเหมือน 3.9999998 ดังนั้น int (Math.round ()) ไม่จำเป็นต้องตัดทอนอะไรเลยและจะใช้งานได้เสมอ