Текущий архив: 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.041 c