Firebird цифры выводятся в формате 1Е3=1000
Модератор: Модераторы
Firebird цифры выводятся в формате 1Е3=1000
Firebird цифры выводятся в формате 1Е3=1000.
В полях с типом Numeric(X,Y) и Decimal(X,Y) цифры выводятся по такому формату : 1500=1,5Е3. В полях с DOUBLE PRECISION, выводятся всё нормально.
Lazarus 1.Х, Firebird 2.1 и 2.5. FPC 2.6.2.
В полях с типом Numeric(X,Y) и Decimal(X,Y) цифры выводятся по такому формату : 1500=1,5Е3. В полях с DOUBLE PRECISION, выводятся всё нормально.
Lazarus 1.Х, Firebird 2.1 и 2.5. FPC 2.6.2.
- dunin
- энтузиаст
- Сообщения: 634
- Зарегистрирован: 02.05.2007 13:18:11
- Откуда: Тољя††и
- Контактная информация:
Re: Firebird цифры выводятся в формате 1Е3=1000
Tango, попробуйте поэксперементировать с другими компонентами для вывода данных.
Re: Firebird цифры выводятся в формате 1Е3=1000
Это для всех компонент вывода данных.
- Little_Roo
- энтузиаст
- Сообщения: 639
- Зарегистрирован: 27.02.2009 18:56:36
- Откуда: Санкт-Петербург
Re: Firebird цифры выводятся в формате 1Е3=1000
Tango писал(а):В полях с типом Numeric(X,Y) и Decimal(X,Y) цифры выводятся по такому формату : 1500=1,5Е3
А какой компонент вывода?
У себя не замечал - DBEdit, RxDbGrid - OK!
Re: Firebird цифры выводятся в формате 1Е3=1000
И DBGrid и DBEdit. Использую ZEOS 7.0.3 stble.
Re: Firebird цифры выводятся в формате 1Е3=1000
Дело не в компонентах ввода данных, данные такими предоставляет сам ZQuery. Попробовал победить это с помощью добавления полей в FieldDefs с форматом отображения, получается лишь частично, не на всех базах, получается иногда, что поле Numeric(8, 2) определяется как ftInteger.
-
ViruZ
- постоялец
- Сообщения: 175
- Зарегистрирован: 30.05.2005 17:41:12
- Откуда: Украина
- Контактная информация:
Re: Firebird цифры выводятся в формате 1Е3=1000
Аналогично при работе с файлами формата dbf: в стабильной сборке Lazarus 1.2.4 всё ОК, а в SVN - экспоненциальный формат.
Ниже привожу скриншот в OpenSuse 13.1 x64 (Lazarus SVN), Windows то же самое.

Ниже привожу скриншот в OpenSuse 13.1 x64 (Lazarus SVN), Windows то же самое.

- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Re: Firebird цифры выводятся в формате 1Е3=1000
Укажи в маске поля явный формат - #,###,####,##0.00.
Re: Firebird цифры выводятся в формате 1Е3=1000
Или создайте поля самостоятельно, присвоив им нужный тип вручную.
Re: Firebird цифры выводятся в формате 1Е3=1000
alexs писал(а):Укажи в маске поля явный формат - #,###,####,##0.00.
Не понятно, где разделители разрядов, где дробной части?
Я делал так. И ничего не изменилось.
Код: Выделить всё
For i:=1 to Fields.Count do
Begin
Case Fields[i-1].DataType of
ftSmallint, ftInteger, ftLargeint, ftWord, ftAutoInc:Begin
FieldsDefs[j]:=TIntegerField.Create(Self);
FieldsDefs[j].FieldName:=Fields[i-1].FieldName;
Inc(j);
end;
ftFloat:Begin
FieldsDefs[j]:=TFloatField.Create(Self);
FieldsDefs[j].FieldName:=Fields[i-1].FieldName;
TFloatField(FieldsDefs[j]).Precision:=5;
TFloatField(FieldsDefs[j]).DisplayFormat:='#.#####0.00000';
Inc(j);
End;
ftCurrency:Begin
FieldsDefs[j]:=TCurrencyField.Create(Self);
FieldsDefs[j].FieldName:=Fields[i-1].FieldName;
TFloatField(FieldsDefs[j]).DisplayFormat:='#.##0.00';
Inc(j);
End;
ftBCD, ftFMTBcd:Begin
FieldsDefs[j]:=TNumericField.Create(Self);
FieldsDefs[j].FieldName:=Fields[i-1].FieldName;
TNumericField(FieldsDefs[j]).DisplayFormat:='#.#####0.00000';
Inc(j);
End;
ftString, ftFixedChar, ftVariant:Begin
FieldsDefs[j]:=TStringField.Create(Self);
FieldsDefs[j].Size:=Fields[i-1].Size;
FieldsDefs[j].FieldName:=Fields[i-1].FieldName;
Inc(j);
End;
ftFixedWideChar, ftWideString:Begin
FieldsDefs[j]:=TWideStringField.Create(Self);
FieldsDefs[j].Size:=Fields[i-1].Size;
FieldsDefs[j].FieldName:=Fields[i-1].FieldName;
Inc(j);
End;
ftDate:Begin
FieldsDefs[j]:=TDateField.Create(Self);
FieldsDefs[j].FieldName:=Fields[i-1].FieldName;
Inc(j);
End;
ftTime:Begin
FieldsDefs[j]:=TTimeField.Create(Self);
FieldsDefs[j].FieldName:=Fields[i-1].FieldName;
Inc(j);
End;
ftDateTime{$IFDEF FPC}, ftTimeStamp{$ENDIF}:Begin
FieldsDefs[j]:=TDateTimeField.Create(Self);
FieldsDefs[j].FieldName:=Fields[i-1].FieldName;
Inc(j);
End;
{$IFNDEF FPC}
ftTimeStamp:Begin
FieldsDefs[j]:=TSQLTimeStampField.Create(Self);
FieldsDefs[j].FieldName:=Fields[i-1].FieldName;
Inc(j);
End;
{$ENDIF}
ftBoolean:Begin
FieldsDefs[j]:=TBooleanField.Create(Self);
FieldsDefs[j].FieldName:=Fields[i-1].FieldName;
Inc(j);
End;
ftBytes, ftOraBlob, ftVarBytes, ftBlob, ftMemo, ftGraphic, ftFmtMemo,
ftParadoxOle, ftDBaseOle, ftTypedBinary, ftArray,
ftWideMemo:Begin
FieldsDefs[j]:=TBlobField.Create(Self);
FieldsDefs[j].FieldName:=Fields[i-1].FieldName;
Inc(j);
End;
End;
End;
- *Rik*
- постоялец
- Сообщения: 453
- Зарегистрирован: 19.04.2011 12:18:51
- Откуда: Урал
- Контактная информация:
Re: Firebird цифры выводятся в формате 1Е3=1000
Попробуй перед использованием компонентов поставить:
DefaultFormatSettings.ThousandSeparator := ' ';//Пробел
FormatSettings.ThousandSeparator := ' ';//Прообел
Еще разделитель дробной часть надо запятую так-же задать, там возможно точка стоит
DefaultFormatSettings.ThousandSeparator := ' ';//Пробел
FormatSettings.ThousandSeparator := ' ';//Прообел
Еще разделитель дробной часть надо запятую так-же задать, там возможно точка стоит
