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

Вниз

Почему Delphi делит не верно?   Найти похожие ветки 

 
BigLamer   (2002-01-04 12:57) [0]

Почему следующий код выдает неверное значение переменной k? Ведь должно получаться так что k=0.1 , а получается k=0,100000001490116. Я с этим уже сталкивался давным-давно, но забыл в чем тут дело.


procedure TForm1.FormActivate(Sender: TObject);
var
k:single;
begin
k:=1/10;
Edit1.Text:=FloatToStr(k);
end;


 
Alx2   (2002-01-04 13:06) [1]

Так все происходит с точностью до машинного ноля. Тем более, тип single 4-х байтовый. У него "машинный ноль" довольно большой


 
Юрий Зотов   (2002-01-04 13:09) [2]

Это совершенно нормальная вещь и Delphi здесь абсолютно ни при чем. Уж такова машинная арифметика действительных чисел. Все, что можно здесь сделать - это повысить точность, объявив k типа double или extended.

Исчерпывающие разъяснения см. здесь:
http://www.delphikingdom.com/helloworld/reals.htm


 
Alx2   (2002-01-04 13:11) [3]

Также из Help узнаем, что тип single имеет 7-8 значащих цифр.
В Вашем примере верными являются 8 цифр. Большего требовать от типа single не получится


 
BigLamer   (2002-01-04 13:31) [4]

Благодарствую, double -помогло.Но я хотел с single. Ну да ладно и так сойдет.



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

Форум: "Основная";
Текущий архив: 2002.01.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.005 c
1-66265
Notify
2002-01-03 19:54
2002.01.21
Возможно ли каким либо образом передать курсор из VisualFoxPro в Delphi не копируя его на винт?


4-66399
Roman_
2001-11-19 00:06
2002.01.21
Вывод текста по кругу (поправьте плиз алгоритм)


3-66179
AndyFirst
2001-12-15 16:11
2002.01.21
Проблема с чтением Character-поля в DBF-таблице


7-66373
Gallant
2001-10-06 17:15
2002.01.21
Как запретить изменение показания часов в Windows98


3-66196
Joe
2001-12-18 11:49
2002.01.21
Interbase





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