Форум: "Основная";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
ВнизКак реализовать обычное математическое округление Найти похожие ветки
← →
zorik © (2005-10-21 11:11) [0]Ф-ция Round округливает:
1.5=2
2.5=2
3.5=4
4.5=4
5.5=6
6.5=6
Если ли функция какая "нормально" округливает? Или надо писать свою?
Спасибо.
← →
Baltika-12 (2005-10-21 11:32) [1]
function MyRound(X:Double; N: Integer): Double;
var
i,n1: Integer;
begin
Result := X;
n1 := 1;
for i := 1 to N do n1 := n1*10;
result := Trunc(Result*n1+0.5)/n1;
end;
← →
zorik © (2005-10-21 12:24) [2]Спасибо!
Но наверно должна быть и стандартная ф-ция.
← →
ShiFT (2005-10-21 12:48) [3]int( X: Double)
← →
Экспериментатор (2005-10-21 13:48) [4]в модуле Math стандартная функция RoundEx - один в один как MyRound у Baltika-12
← →
Sergey_R © (2005-10-21 14:21) [5]Вообще-то по правилам математики при округлении (если дробная часть заканчивается на 5) надо смотреть предыдущее число: если число нечетное, тогда округляем до большего, а если четное, тогда - до меньшего.
Так что Round работает правильно!
← →
111_ (2005-10-21 15:00) [6]Она не округливает а округляет.
← →
Lexer © (2005-10-21 15:00) [7]>нечетное, тогда округляем до большего, а если четное, тогда - до меньшего.
неужто?
ты где такое вычитал?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c