![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ОКРУГЛЕНИЕ [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