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

Вниз

Проблема при переходе из одного типа в другой.   Найти похожие ветки 

 
AlexLebed   (2004-05-15 11:12) [0]

В чём проблема?

Я задал массив
pki:array[1..10] of single = (0.0018,0.00185,0.0019,0.00195,0.002,0.00189,0.002,0.0021,           0.0018,0.0018);

А когда я вывожу его на форму,

TEdit[i].text:=floattostr(pki[i]);

То в Edit’ах массив отображаются с погрешностью в десятитысячных, то есть получаю массив

0,00179999996908009        
0,00185000000055879
0,0019000000320375
0,00194999994710088
0,0020000000949949
0,00188999995589256
0,0020000000949949
0,00209999992512167
0,00179999996908009  
0,00179999996908009    

Как избавиться от этого безобразия. Для меня это очень важно.


 
begin...end ©   (2004-05-15 12:55) [1]

Edit[I].Text := FloatToStrF(pki[I], ffFixed, 6, 5)
Или поиграйся с функцией RoundTo из модуля Math.


 
AlexLebed   (2004-05-15 12:58) [2]

Будь добр, поясни, пожалуйста

Edit[I].Text := FloatToStrF(pki[I], ffFixed, 6, 5)


 
begin...end ©   (2004-05-15 13:01) [3]

ffFixed - формат, в котором будет выводиться число. ffFixed означает, что оно будет выводиться не в научном формате, а в обычном, как у тебя.
6 - общее количество десятичных цифр.
5 - количество цифр после запятой.

FloatToStrF + F1


 
AlexLebed   (2004-05-15 14:11) [4]

А как быть, если я этот массив(первоначальный) передаю в dll-библиотеку? В библиотеку он в каком виде передаётся? Как проверить (учтя то, что библиотека не моя)? Если в том, какой меня не устраивает, то как быть?


 
begin...end ©   (2004-05-15 14:21) [5]

pki: array[1..10] of Real

Попробуй так.


 
evvcom ©   (2004-05-15 15:18) [6]

Тип данных Single занимает всего 4 байта. Этого крайне недостаточно для представления числа с той точностью, которая Вам требуется.

> begin...end ©   (15.05.04 14:21) [5]
> pki: array[1..10] of Real

Real и Integer - типы, длина в байтах которых, а значит и точность зависит от реализации языка. Поэтому здесь лучше указать независимый от реализации языка тип Double.


> array[1..10] of ...
> ... передаю в dll-библиотеку

Чтобы в дальнейшем меньше путаться, я считаю, что лучше привыкать, что все индексы начинаются с нуля, как это и используется в подавляющем большинстве случаев. Есть исключения, но в основном они обоснованные, а Вы, я сомневаюсь, что сможете обосновать необходимость своих 1..10, а не 0..9



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

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

Наверх




Память: 0.45 MB
Время: 0.043 c
1-1084527897
Korefey
2004-05-14 13:44
2004.05.30
SQL объединение столбцов.


14-1084212225
Drakon
2004-05-10 22:03
2004.05.30
Электронные учебники по Delphi


3-1083531896
Dakis
2004-05-03 01:04
2004.05.30
Отчёты из MS Access


7-1082851070
fantomas
2004-04-25 03:57
2004.05.30
CRC16


3-1084004683
Andrew Frol
2004-05-08 12:24
2004.05.30
Можно ли программно в ODBC прописывать DSN???





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