Текущий архив: 2005.02.20;
Скачать: CL | DM;
ВнизВопрос про округление. Найти похожие ветки
← →
12345 (2005-02-03 12:57) [0]Есть три целых: x y z. Есть действительное число a.
Вопрос - насолько будут отличатся величины:
Round(ax)+Round(ay)+Round(az) от Round(ax+ay+az)?
Чувствую, что максимум на единицу, а доказать не могу. Кто-нибудь может?
Спасибо.
← →
TUser © (2005-02-03 13:04) [1]Да нет, может на 2 отличаться, если имеется в виду Round из Delphi и не использован SetRoundingMode.
← →
raidan © (2005-02-03 13:56) [2]Не может на два.
← →
Ega23 © (2005-02-03 14:04) [3]ax=0.5, ay=0.5, az=1
← →
raidan © (2005-02-03 14:30) [4]Точно, я тупица.
memo1.Lines.Add(inttostr(round(1.5)+round(1.5)+round(1.5)));
memo1.Lines.Add(inttostr(round(1.5+1.5+1.5)));
← →
12345 (2005-02-04 19:30) [5]Ну хорошо - максимум на два. А доказать это можно?
А то вдруг пример найдется где и на три.
← →
default © (2005-02-04 21:03) [6]а почему когда целая часть числа чётная при дробной части 0.5
Round округляет в меньшую сторону, а когда нечётная при той же дробной части - в большую?
← →
begin...end © (2005-02-04 21:17) [7]> [6] default © (04.02.05 21:03)
Из хелпа:
If X is exactly halfway between two whole numbers, the result is always the even number. This method of rounding is often called "Banker’s Rounding".
← →
default © (2005-02-04 21:27) [8]а нафиг так сделано?
такая фигня происходит потому что там FISTP используется, а не FRNDINT
← →
default © (2005-02-06 18:21) [9]вот тут объяснение если кому интересно
http://delphimaster.net/view/15-1107547412/
Страницы: 1 вся ветка
Текущий архив: 2005.02.20;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.045 c