Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ОКРУГЛЕНИЕ [D7]


zaw ©   (2005-06-03 14:12:00) 

Почему функция RoundTo не округляет число 275.975 правильно
var
Double1, double2, double3, double4: double;
begin
Double1 := 3.5;
Double2 := 78.85;
Double2 := 78.89;

Double3 := RoundTo(Double1 * Double2, -2); // 275.97
Double4 := RoundTo(Double1 * Double2, -2); // 276.12

Label1.Caption := FloatToStr(Double3);
Label2.Caption := FloatToStr(Double4);  
end;


Anatoly Podgoretsky   (2005-06-03 15:32:00) [1]

Никуда ты не вышел, ты просто отодвинул границу.


zaw   (2005-06-03 14:51:00) [2]


> Ega23 ©   (03.06.05 14:38) [4]

Вышел с честью, вместо double надо было использовать extended


Ega23   (2005-06-03 14:38:00) [3]

как выйти из ситуации?

С позором. Или с честью.  На твой выбор.


zaw   (2005-06-03 14:37:00) [4]

как выйти из ситуации?


panov   (2005-06-03 14:35:00) [5]

>zaw   (03.06.05 14:12)
И не надо так орать.


Anatoly Podgoretsky   (2005-06-03 14:30:00) [6]

По тому что ни о каком округлении для чисел с плавающей запятой говорить не приходится.
Округление это вообще тогда когда число круглое, никаких знаков после запятой.
Здесь же делается некоторый психологический обман, число умножается на 10^N, затем округляется, после опять делится на туже величину, после чего мы имеем опять не округленое число, при этом никто не гарантирует, что оно будет равно N / 10^N


Наверх

Титульная страница Поиск, карта сайта Написать письмо