Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.13;
Скачать: CL | DM;

Вниз

Как реализовать обычное математическое округление   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.061 c
2-1130168799
Profi
2005-10-24 19:46
2005.11.13
Зависание функции из модуля.


6-1122587129
nik2be
2005-07-29 01:45
2005.11.13
Перехват и замена содержимого пакета в реальном времени


2-1130220071
btr
2005-10-25 10:01
2005.11.13
Расскажите про WideString


3-1128230792
YurikGL
2005-10-02 09:26
2005.11.13
Динамическое формирование текста Exception в ХП


14-1129490883
Knight
2005-10-16 23:28
2005.11.13
Помогите выбрать марку машины в пределах $3000