Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.034 c
1-1099568054
TUser
2004-11-04 14:34
2004.11.21
sharing violation


14-1099576045
_none_
2004-11-04 16:47
2004.11.21
Экспорт всех слоев PSD в отдельные файлы (png)


1-1099556874
LEXX_55
2004-11-04 11:27
2004.11.21
"Памогите, кто знаете". Почему ответ не верный?


4-1097518429
ser_ega
2004-10-11 22:13
2004.11.21
Приложение!


3-1098869303
TolkoNachal
2004-10-27 13:28
2004.11.21
Различное выполнение query.last





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский