Форум: "Основная";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
ВнизОКРУГЛЕНИЕ Найти похожие ветки
← →
zaw (2005-06-03 14:12) [0]Почему функция 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 14:30) [1]По тому что ни о каком округлении для чисел с плавающей запятой говорить не приходится.
Округление это вообще тогда когда число круглое, никаких знаков после запятой.
Здесь же делается некоторый психологический обман, число умножается на 10^N, затем округляется, после опять делится на туже величину, после чего мы имеем опять не округленое число, при этом никто не гарантирует, что оно будет равно N / 10^N
← →
panov © (2005-06-03 14:35) [2]>zaw (03.06.05 14:12)
И не надо так орать.
← →
zaw (2005-06-03 14:37) [3]как выйти из ситуации?
← →
Ega23 © (2005-06-03 14:38) [4]как выйти из ситуации?
С позором. Или с честью. На твой выбор.
← →
zaw (2005-06-03 14:51) [5]
> Ega23 © (03.06.05 14:38) [4]
Вышел с честью, вместо double надо было использовать extended
← →
Anatoly Podgoretsky © (2005-06-03 15:32) [6]Никуда ты не вышел, ты просто отодвинул границу.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.038 c