คำตอบที่ได้รับจากการใช้ฟังก์ชัน Round ใน Delphi บางครั้งอาจแตกต่างจากที่เราคาดไว้:
การปัดเศษใช้เพื่อปล่อยเลขคู่ คือเมื่อปัดเศษหรือปัดเศษตัวเลขมากกว่าหรือน้อยกว่าห้าก็จะถูกประมวลผลโดยการปัดเศษ ป้อนแล้วจะส่งกลับค่าคู่เสมอ
ตัวอย่างผลลัพธ์
ผม:= รอบ (11.5) 12
ผม:= รอบ (10.5) 10
การปัดเศษประเภทนี้จริง ๆ แล้วขึ้นอยู่กับอัลกอริธึมของนายธนาคาร ซึ่งโดยทั่วไปใช้ในสถิติ และมีความเป็นวิทยาศาสตร์มากกว่าการ "ปัดเศษ" แบบดั้งเดิม
หากคุณต้องการใช้วิธี "ปัดเศษ" แบบเดิม คุณสามารถใช้ฟังก์ชันต่อไปนี้:
ฟังก์ชั่น RoundClassic (R: จริง): Int64;
เริ่ม
ผลลัพธ์:= Trunc(R);
ถ้า Frac(R) >= 0.5 แล้ว
ผลลัพธ์:= ผลลัพธ์ + 1;
จบ;
ที่จริงแล้วปัญหานี้มีอยู่ในภาษาที่เกี่ยวข้องกับ VB, Excel และ .net