Главная страница
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.48 MB
Время: 0.023 c
1-1084527897
Korefey
2004-05-14 13:44
2004.05.30
SQL объединение столбцов.


11-1073638302
<Falcon>
2004-01-09 11:51
2004.05.30
Для ТТ шрифтов Font.FontWidht - это значение в пикселах?


3-1083899885
garry79
2004-05-07 07:18
2004.05.30
Глюки IBDataSet, а может IBX в целом


6-1081443598
Coder
2004-04-08 20:59
2004.05.30
Indy


1-1084775194
Sergo
2004-05-17 10:26
2004.05.30
TreeView