|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
Неправильные операции с вещественными числами
Код:
procedure TForm1.FormCreate(Sender: TObject); var a, b, c: Extended; begin a := 212.53; b := 212.49; c := a - b; if c = 0.04 then ShowMessage(FloatToStr(c)) end; |
#2
|
||||
|
||||
9-ую строчку заменить на
Код:
if Abs(c-0.04)<0.00000001 then Пишу программы за еду. __________________ |
#3
|
||||
|
||||
Я имею ввиду как увидеть истинное значение переменной 'с'. Например, в виде 0.039999999999999993895990990009 или двоичного кода.
Последний раз редактировалось SpectraL, 01.06.2016 в 10:44. |
#4
|
||||
|
||||
Код:
ShowMessage(FloatToStrF(c, ffGeneral, 100, 100)); Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
SpectraL (01.06.2016)
|
#5
|
||||
|
||||
Спасибо, это более точное значение, но не истинное.
Последний раз редактировалось SpectraL, 01.06.2016 в 11:02. |
#6
|
|||
|
|||
Ну, если тебе бинарное, то как-то так:
Код:
var E : ^Extended; I : ^Byte; begin E^ := 123.4567890; I := ^Byte(E); For I := 0 To 9 Do Begin Writeln(IntToStr(I)); I := I+1; End; Двоичный код уж сам как-нить "выдерешь". |