Arsip: Bug: Round Function


by cyber_hecker in Articles more 17 years ago 2200
pada saat saya browsing, saya menemukan sebuah artikel yang menarik. disini mejelaskan tentang bug kecil yang mungkin tidak kita sadari pada fungsi round.
bug tersebut adalah, jika nilai pecahan berkoma yang dimasukkan adalah nilai ganjil, maka akan dinaikkan ke atas, tetapi jika genap malah di turunkan ke bawah untuk pembulatannya.
  Edit1.Text := IntToStr(Round(23.5)); //->24
  Edit2.Text := IntToStr(Round(22.5)); //-> 22
Syntax Highlighted with https://pascal-id.org/syntax

maka untuk mengatasinya, kita harus melupakan fungsi round bawaan delphi - dan membuat fungsi baru. contoh fungsi untuk round :
 function MyRound(Const X: Extended): Int64;
begin
Result:= Trunc( X );
if ( Frac( X ) >= 0.5 ) then
Result:= Result + 1;
end;
Syntax Highlighted with https://pascal-id.org/syntax

CMIIW

sumber : http://www.q3.nu/trucomania/truco.cgi?374&ing
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com