Firebird цифры выводятся в формате 1Е3=1000

Модератор: Модераторы

Firebird цифры выводятся в формате 1Е3=1000

Сообщение Tango » 30.10.2013 09:47:57

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.
Аватара пользователя
Tango
постоялец
 
Сообщения: 156
Зарегистрирован: 31.05.2012 17:07:30

Re: Firebird цифры выводятся в формате 1Е3=1000

Сообщение dunin » 30.10.2013 10:07:58

Tango, попробуйте поэксперементировать с другими компонентами для вывода данных.
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: Firebird цифры выводятся в формате 1Е3=1000

Сообщение Tango » 30.10.2013 13:30:03

Это для всех компонент вывода данных.
Аватара пользователя
Tango
постоялец
 
Сообщения: 156
Зарегистрирован: 31.05.2012 17:07:30

Re: Firebird цифры выводятся в формате 1Е3=1000

Сообщение Little_Roo » 30.10.2013 19:01:54

Tango писал(а):В полях с типом Numeric(X,Y) и Decimal(X,Y) цифры выводятся по такому формату : 1500=1,5Е3

А какой компонент вывода?
У себя не замечал - DBEdit, RxDbGrid - OK!
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 638
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: Firebird цифры выводятся в формате 1Е3=1000

Сообщение Tango » 31.10.2013 14:15:04

И DBGrid и DBEdit. Использую ZEOS 7.0.3 stble.
Аватара пользователя
Tango
постоялец
 
Сообщения: 156
Зарегистрирован: 31.05.2012 17:07:30

Re: Firebird цифры выводятся в формате 1Е3=1000

Сообщение Tango » 08.08.2014 16:16:22

Дело не в компонентах ввода данных, данные такими предоставляет сам ZQuery. Попробовал победить это с помощью добавления полей в FieldDefs с форматом отображения, получается лишь частично, не на всех базах, получается иногда, что поле Numeric(8, 2) определяется как ftInteger.
Аватара пользователя
Tango
постоялец
 
Сообщения: 156
Зарегистрирован: 31.05.2012 17:07:30

Re: Firebird цифры выводятся в формате 1Е3=1000

Сообщение ViruZ » 31.10.2014 22:28:07

Аналогично при работе с файлами формата dbf: в стабильной сборке Lazarus 1.2.4 всё ОК, а в SVN - экспоненциальный формат.
Ниже привожу скриншот в OpenSuse 13.1 x64 (Lazarus SVN), Windows то же самое.
Изображение
ViruZ
постоялец
 
Сообщения: 175
Зарегистрирован: 30.05.2005 17:41:12
Откуда: Украина

Re: Firebird цифры выводятся в формате 1Е3=1000

Сообщение alexs » 01.11.2014 10:28:34

Укажи в маске поля явный формат - #,###,####,##0.00.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Firebird цифры выводятся в формате 1Е3=1000

Сообщение Vadim » 01.11.2014 10:33:31

Или создайте поля самостоятельно, присвоив им нужный тип вручную.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Firebird цифры выводятся в формате 1Е3=1000

Сообщение Tango » 02.03.2015 14:09:25

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;
Аватара пользователя
Tango
постоялец
 
Сообщения: 156
Зарегистрирован: 31.05.2012 17:07:30

Re: Firebird цифры выводятся в формате 1Е3=1000

Сообщение *Rik* » 02.03.2015 14:38:17

Попробуй перед использованием компонентов поставить:
DefaultFormatSettings.ThousandSeparator := ' ';//Пробел
FormatSettings.ThousandSeparator := ' ';//Прообел
Еще разделитель дробной часть надо запятую так-же задать, там возможно точка стоит
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 426
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru