View previous topic :: View next topic |
Author |
Message |
garik
Joined: 25 Jul 2005 Posts: 40 Location: Ruslan Occupation: it Interests: moscow
|
Posted: 07 Nov 2005 17:04 Post subject: Округление после 16-той цифры... |
|
|
Проблема в следующем.По требованию системы Клиент-Банк в файле для экспорта платежей поле КБК должно иметь числовой формат.При эскпорте из Бэста 5 последних цифр 20-ти значного КБК округляется.Как этого можно избежать?Может кто сталкивался? |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 07 Nov 2005 17:35 Post subject: |
|
|
не понял можно чуть подробн |
|
Back to top |
|
|
garik
Joined: 25 Jul 2005 Posts: 40 Location: Ruslan Occupation: it Interests: moscow
|
Posted: 07 Nov 2005 17:57 Post subject: |
|
|
поподробнее?....
В отладчике попробуйте набрать:
? 12345678901234567890
Получим:
12345678901234570000
то есть с округлением до сотен тысяч.Есть ли надежда получить последние 5 цифр? |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 07 Nov 2005 18:39 Post subject: |
|
|
Боюсь что быстро не получится.
Вы это в dbf кладете - может частями туда положить ? |
|
Back to top |
|
|
garik
Joined: 25 Jul 2005 Posts: 40 Location: Ruslan Occupation: it Interests: moscow
|
Posted: 07 Nov 2005 19:02 Post subject: |
|
|
Да в дбф...Штатными средставами экспорта в Клиент-Банк.Как частями? Через ХФалЕвал ?Штатных способов не нашёл.....Видимо так и придётся сделать.... |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 07 Nov 2005 19:48 Post subject: |
|
|
А если в поле сначало верхнюю часть положить типа
(alias)->field:=12345678900000000000
а потом
(alias)->field+=1234567890
Попробуйте проскочим или нет плз |
|
Back to top |
|
|
Олег Смирнов
Joined: 06 Sep 2004 Posts: 821 Location: Олег Смирнов Occupation: Раут (поганист-сисадмин) Interests: Новосибирск
|
Posted: 07 Nov 2005 20:32 Post subject: |
|
|
nordk wrote: | А если в поле сначало верхнюю часть положить типа
(alias)->field:=12345678900000000000
а потом
(alias)->field+=1234567890
Попробуйте проскочим или нет плз |
Тогда уж надо (alias)->field+=1234567890*10000000000, только вот сомневаюсь, что это что-то кому-то даст... _________________ С уважением, Олег Р. Смирн |
|
Back to top |
|
|
garik
Joined: 25 Jul 2005 Posts: 40 Location: Ruslan Occupation: it Interests: moscow
|
Posted: 08 Nov 2005 14:16 Post subject: |
|
|
nordk wrote: | А если в поле сначало верхнюю часть положить типа
(alias)->field:=12345678900000000000
а потом
(alias)->field+=1234567890
Попробуйте проскочим или нет плз |
Нет.Не проскочили...В поле та же 123...570000 .Вообще большие числа возможны?Есть ли какие-то set'ы по ограничению количество цифр в числе?Или это особенности среды Клиппера,дбф? |
|
Back to top |
|
|
Tsarenko P
Joined: 06 Oct 2005 Posts: 2 Location: Царенко П.Е. Occupation: программист Interests: Донецк
|
Posted: 08 Nov 2005 16:26 Post subject: |
|
|
Странное требование клиент-банка. Как они интересно собираются читать такое
поле ?
Вот максимальные значения для 8-ми байтого целого (longlong, int64)
#define _I64_MIN (-9223372036854775807i64-1) /* minimum signed __int64 value */
#define _I64_MAX 9223372036854775807i64 /* maximum signed __int64 value */
#define _UI64_MAX 18446744073709551615ui64 /* maximum unsigned __int64 value */
Эти ограничения работают и для харбора, если значение числа больше,
число преобразуется в 8-ми байтовый double с потерей последних значащих
цифр. 128-битные целые по-моему в моду еще не вошли
Есть ли выход ? Он есть всегда
Можно например написать процедуру на C и непосредственно копировать
20-ти байтовую строку в буфер текущей записи |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 09 Nov 2005 12:48 Post subject: |
|
|
Спасибо за участие в теме.
Буду надеятся на дальнейшую помощь с харбором в случае подобных вопросов |
|
Back to top |
|
|
garik
Joined: 25 Jul 2005 Posts: 40 Location: Ruslan Occupation: it Interests: moscow
|
Posted: 09 Nov 2005 14:50 Post subject: |
|
|
Спасибо за содержательный ответ.Вообще беда с этими клиент-банками.То 20-ти значные числа они хотят, то название поля дбф-базы более 10-ти символов...Будем боротся со специалистами банка. |
|
Back to top |
|
|
Олег Смирнов
Joined: 06 Sep 2004 Posts: 821 Location: Олег Смирнов Occupation: Раут (поганист-сисадмин) Interests: Новосибирск
|
Posted: 09 Nov 2005 20:16 Post subject: |
|
|
garik wrote: | Будем боротся со специалистами банка. |
У меня вообще такое впечатление, что специалисты Вашего банка чего-то там недодумали... Ну нахрена им такое длинное цифровое поле?.. На C его можно создать и заполнить, а читать они его чем собираются?!. Если тоже с помощью C - так не проще ли сделать это поле уже тупо текстовым? _________________ С уважением, Олег Р. Смирн |
|
Back to top |
|
|
|