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

Вниз

"Памогите, кто знаете". Почему ответ не верный?   Найти похожие ветки 

 
LEXX_55   (2004-11-04 11:27) [0]

Есть строка А := Trunc(В*100) mod 100;. В - вещественное, А - целое. В результате "А" получается на 1 меньше чем должно быть. До 30, все "А" которые делятся на 3 - не верны, после 30 вообще... В чем причина и как победить. Заранее спасибо.


 
TUser ©   (2004-11-04 11:29) [1]


> "А" получается на 1 меньше чем должно быть.

А что долюно юыть и кому оно должно?


 
LEXX_55   (2004-11-04 11:32) [2]

к примеру: В = 0,15, А должно получиться 15, но в итоге А=14.


 
LEXX_55   (2004-11-04 11:35) [3]

Мне надо ответ на печать выдать. А он черт знает что показывает.


 
Pavel_Pavel ©   (2004-11-04 11:38) [4]

Trunc не нужен


 
LEXX_55   (2004-11-04 11:40) [5]

а что нужно?


 
LEXX_55   (2004-11-04 11:43) [6]

мне ужно округление. вдруг какой нибудь п-пользователь введет больше 2-х символов после запятой, или так получится.


 
TUser ©   (2004-11-04 11:45) [7]

procedure TForm1.Button1Click(Sender: TObject);
var b:real;
   a:integer;
begin
  b:=0.15; b:=b*100;
  a:=trunc(b{*100}) mod 100;
  label1.Caption:=inttostr(a);
end;


 
LEXX_55   (2004-11-04 11:54) [8]


>   b:=0.15; b:=b*100;
>   a:=trunc(b{*100}) mod 100;

эффект тот же


 
TUser ©   (2004-11-04 11:56) [9]

Странно - у меня заработало (D7), правда почему так - я до сих пор репу чешу. В "Неочевидных особенностях ... " ничего вроде нет.


 
Verg ©   (2004-11-04 12:04) [10]

Ну не представимо число 0,15 в разрядной сетке конечной длины.
0.149999999999994 - это на самом деле


 
LEXX_55   (2004-11-04 12:07) [11]

почему другие числа правильно расчитываются, мне что, определить все числа и ввести на них поправку? Их же мама родная.


 
LEXX_55   (2004-11-04 12:20) [12]

конечно, я могу число перевесть в строку и попелить ее. но это не очень хороший и быстрый путь.


 
Verg ©   (2004-11-04 12:22) [13]


> почему другие числа правильно расчитываются


Потому, что они имеют точное представление в конечной разрядной сетке.
Например, 1/2, 1/4, 1/8 и т.д. до некоторого 1/(2^N), где N <> INFINITE, а также суммы комбинаций таких чисел.


> мне что, определить все числа и ввести на них поправку

А поправку ты как собрался представлять, и чем тебе не угодило округление?

round( x * 100 )



Страницы: 1 вся ветка

Текущий архив: 2004.11.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.04 c
14-1099658234
Гайцы-Газазад
2004-11-05 15:37
2004.11.21
Виват, Днепр! Жаль, Зенит подкачал...


14-1099839388
Vlad Oshin
2004-11-07 17:56
2004.11.21
Провинциальный чиновник. М.Ф. Доставленский Рассказ.


1-1099499465
lexa
2004-11-03 19:31
2004.11.21
Лингвистический анализ текста.


1-1099640046
Topepo
2004-11-05 10:34
2004.11.21
Помогите с тестовой оболочкой, плииз!


14-1099316076
Оля
2004-11-01 16:34
2004.11.21
Как отправить факс?