Главная страница
    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.04 c
14-1099551919
BiN
2004-11-04 10:05
2004.11.21
Транспортная революция. Будет ли она?


1-1099905372
Relaxxx
2004-11-08 12:16
2004.11.21
Подскажите как мне з строки вырезать все символы перевода строки


1-1099408347
Agent[007]
2004-11-02 18:12
2004.11.21
Всем hi. Как задать property у класса и можно ли его задать у r


14-1099342994
Мирон
2004-11-02 00:03
2004.11.21
Есть вакансия жены...


4-1097414017
Ralf
2004-10-10 17:13
2004.11.21
Как выключить монитор





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский