Главная страница
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-1084443190
pantera
2004-05-13 14:13
2004.05.30
Проблема с диаграммой пирог (Pie) компонента TeeChart


11-1074625930
Ertong
2004-01-20 22:12
2004.05.30
BitBtn глюкавит


14-1084440218
Dmitriy O.
2004-05-13 13:23
2004.05.30
Приятель хочет купить ком нужен совет.


14-1084042210
Shopot
2004-05-08 22:50
2004.05.30
Динамический объект.


6-1081777335
Ivolg
2004-04-12 17:42
2004.05.30
FTP