Jawaban yang diperoleh dengan menggunakan fungsi Round di Delphi terkadang berbeda dari yang kita harapkan:
Pembulatan digunakan untuk menyisakan bilangan genap. Maksudnya bila angka yang dibulatkan atau dibulatkan lebih besar dari atau kurang dari lima, maka diproses dengan pembulatan. Bila angka yang dibulatkan atau dibulatkan sama dengan lima, maka tergantung pada angka sebelumnya, apakah ganjil atau genap dimasukkan, selalu mengembalikan nilai genap.
Contoh hasil
saya:= Bulat(11.5) 12
saya:= Bulat(10,5) 10
Putaran semacam ini sebenarnya didasarkan pada algoritma bankir, yang umumnya digunakan dalam statistik, dan lebih ilmiah daripada “pembulatan” tradisional.
Jika Anda ingin menggunakan metode "pembulatan" tradisional, Anda dapat menggunakan fungsi berikut:
fungsi RoundClassic(R: Nyata): Int64;
mulai
Hasil:= Trunc(R);
jika Frac(R) >= 0,5 maka
Hasil:= Hasil + 1;
akhir;
Faktanya, masalah ini terjadi pada bahasa terkait VB, Excel, dan .net.