|
|
Mam problem z zaokrąglaniem liczb............
Korzystam z funkcji RoundTo i pojawia się problem:
jeśli wartość jest dokładnie w połowie między dwoma liczbami całkowitymi
(2.5) to zaokrągla ona do najbliższej (niby) parzystej............ niby bo
też zauważyłem rozbierzności w zależności od wielkości liczby (0,575
zaoktągla do 0.57 a nie jak zasada mówi do najbliżeszej parzystej czyli do
0,58) no i co dziwne od komputera.(jest rozbierzność - stosując tą samą
oczywiście aplikację między np. 0,525 na jedmym kompie zaokragla w górę a
na drugim w dół).
Zasada jest taka, że nie zaokrąglaga do najblizszej parzystej tylko:
0-4 ->0, 5-9->10.
Tak czy siak w tym przypadku faktycznie powinno być 0,58.
Domyślnie jest "Banker's Roundin", a żeby zrobić "normalne" to zrób:
SetRoundMode(rmNearest);
Poza tym masz zaokrąglenia w dół (inaczej "podłoga"): Floor i do góry (sufit
chyba): Ceil. No i Trunc.
Pozdrawiam,
t0mek
|
|