Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2012, 04:04   #1
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию Decimal количество знаков после запятой

Доброго времени суток.
База Firebird.
Есть поле "OBEM" типа Decimal (15,5). Использую Fibplus для подключения к БД.
Мне нужно выгрузить это поле в XML, но чтобы было 5 знаков после запятой, т.е. если число "0,1" то должно быть "0,10000". Но у меня никак не получается отобразить эти 5 знаков после запятой, может какой другой тип поля надо выбрать? Подскажите пожалуйста как быть? Спасибо.
tarakan1983 вне форума Ответить с цитированием
Старый 02.07.2012, 05:32   #2
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

А может надо писать в xml не число 0,1 а строку 0,10000 ибо с точки зрения математики число 0,10000 = 0,1. А вот строки 0,10000 != 0,1.
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Старый 02.07.2012, 06:43   #3
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

дорогой tarakan1983, в Firebird просто поле сделайте Numerik 15,5 и суйте туда что хотите ...БД сама разберется как ей хранить данные.
Ибо как вам выше уже сказали 0,10000 = 0,1 по этому нет смыслы хранить 0,10000
если вы будите работать с ними как с числами
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 02.07.2012, 07:29   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
т.е. если число "0,1" то должно быть "0,10000"
Например так:
Код:
:=Format('%.5f',[База.Поле.AsFloat]);
Выравняет нулями.
Цитата:
БД сама разберется как ей хранить данные.
Автор выгружает в XML, вполне возможно для последующей обработки в какой нить дермопроге, которой мегаважно выравнивание числа.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.07.2012, 13:54   #5
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию

Stilet Все отлично, спасибо. Вот только мне еще надо вместо запятой - точку, где в FIBPlus это настроить, не подскажете?
Я в принципе нарисовал
Код:
s:='';
for i:=1 to Length(FloatToStrF(Dm.QБаза.Поле.AsFloat,ffNumber,15,5)) do
    begin
      if FloatToStrF(Dm.QБаза.Поле.AsFloat,ffNumber,15,5)[i]<>',' then  
           s:=s+FloatToStrF(Dm.QБаза.Поле.AsFloat,ffNumber,15,5)[i] 
              else s:=s+'.';
    end;
но как то портит красоту...

Последний раз редактировалось tarakan1983; 02.07.2012 в 14:02.
tarakan1983 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Количество знаков после запятой roman_44 Microsoft Office Excel 10 23.05.2019 12:14
Количество знаков после запятой ольгаг C++ Builder 5 19.03.2012 17:23
Как уменьшить количество знаков после запятой в ответе. Leshii Visual C++ 1 13.02.2012 01:08
Количество знаков после запятой Matrix6993 Общие вопросы Delphi 5 01.02.2012 01:42
Вещественный тип: Количество знаков после запятой... Demien Общие вопросы Delphi 2 10.11.2009 19:14