Die mit der Round-Funktion in Delphi erhaltenen Antworten weichen manchmal von unseren Erwartungen ab:
Um gerade Zahlen zu erhalten, wird gerundet. Das heißt, wenn die Rundungs- oder Rundungsziffer größer oder kleiner als fünf ist, wird sie durch Runden verarbeitet. Wenn die Rundungs- oder Rundungsziffer gleich fünf ist, hängt es davon ab, ob die vorherige Ziffer ungerade oder gerade ist eingegeben wird, wird immer ein gerader Wert zurückgegeben.
Beispielergebnisse
i:= Round(11.5) 12
i:= Round(10.5) 10
Diese Art von Runde basiert eigentlich auf dem Bankalgorithmus, der allgemein in der Statistik verwendet wird und wissenschaftlicher ist als die traditionelle „Rundung“.
Wenn Sie die traditionelle Methode „Rundung“ verwenden möchten, können Sie die folgende Funktion verwenden:
Funktion RoundClassic(R: Real): Int64;
beginnen
Ergebnis:= Trunc(R);
wenn Frac(R) >= 0,5 dann
Ergebnis:= Ergebnis + 1;
Ende;
Tatsächlich besteht dieses Problem in VB-, Excel- und .net-bezogenen Sprachen.