Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Присвоить decimal(18) в datawindow / 9 сообщений из 9, страница 1 из 1
24.02.2005, 18:28
    #32932073
slav_perm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Присвоить decimal(18) в datawindow
Насколько мне известно по версии 6.5 присвоить 18-ти разрядное число без потери точности в поле decimal в датавиндове никак нельзя. По крайней мере SetItem этого не позволяет. Решена ли эта проблема в более новых версиях ?

И вообще стоит ли переходить на какую либо более новую версию ?
Интересует, прежде всего, с точки зрения
более стабильной работы и легкости конвертации.

спасибо.
...
Рейтинг: 0 / 0
24.02.2005, 18:36
    #32932086
Сотников
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Присвоить decimal(18) в datawindow
...
Рейтинг: 0 / 0
24.02.2005, 18:44
    #32932104
slav_perm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Присвоить decimal(18) в datawindow
Там уже был, нужно именно что-то вроде SetItemDecimal
(в противовес к GetItemDecimal которое работает вполне исправно)

Ведь ввод 18-ти разрядных чисел с клавиатуры PowerBuilder вполне поддерживает но эмулировать это через клавиатуру - как-то совсем некрасиво :)
...
Рейтинг: 0 / 0
24.02.2005, 20:52
    #32932234
PL99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Присвоить decimal(18) в datawindow
Код: plaintext
1.
2.
3.
decimal{ 0 } ld_Test

ld_Test =  123456789012345678 . 0 
SetItem ( 1 , "test", ld_Test)
Что именно не работает-то?
...
Рейтинг: 0 / 0
25.02.2005, 00:07
    #32932319
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Присвоить decimal(18) в datawindow
PL99Что именно не работает-то?
Если посмотреть в дебагере, то видно, что, например, вместо 1 dec дает 1.000000035 (или что-то в этом роде). Короче, не точное совпадение. Так во всяком случае до версии 8.0.
...
Рейтинг: 0 / 0
25.02.2005, 00:21
    #32932330
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Присвоить decimal(18) в datawindow
А как это ещё должно быть с floating point numbers?
...
Рейтинг: 0 / 0
25.02.2005, 07:41
    #32932448
AIZ
AIZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Присвоить decimal(18) в datawindow
Вообще говоря, при работе с Decimal надо использовать Round до нужной точности, особенно если они используются в логических выражениях.
...
Рейтинг: 0 / 0
25.02.2005, 11:22
    #32932902
PL99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Присвоить decimal(18) в datawindow
Riska PL99Что именно не работает-то?
Если посмотреть в дебагере, то видно, что, например, вместо 1 dec дает 1.000000035 (или что-то в этом роде). Короче, не точное совпадение. Так во всяком случае до версии 8.0.Если сначала внимательно прочитать пример, то можно увидеть объявление переменной
Код: plaintext
decimal{ 0 } ld_Test

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
decimal{ 0 } ld_Correct0
decimal{ 6 } ld_Correct6
decimal ld_Wrong

ld_Correct0 =  1234567890123456789 . 0 
ld_Correct6 =  1234567890123456789 . 0 
ld_Wrong =  1234567890123456798 . 0  +  1 

debugbreak()
ld_Correct0 = dec(ld_Wrong/  3 )
ld_Correct6 = dec(ld_Wrong /  3 )
ld_Wrong = dec(ld_Wrong/  3 )


messageBox ("", string (ld_Correct0 ) + "~r~n" + string (ld_Correct6 ) + "~r~n" + string (ld_Wrong))
В таком коде тоже не видно "спецэффектов". Но, в любом случае, рекомендую корректно объявлять переменные - избавитесь от множества глюков
...
Рейтинг: 0 / 0
25.02.2005, 18:22
    #32934396
slav_perm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Присвоить decimal(18) в datawindow
PL99
Код: plaintext
1.
2.
3.
decimal{ 0 } ld_Test

ld_Test =  123456789012345678 . 0 
SetItem ( 1 , "test", ld_Test)
Что именно не работает-то?

Да действительно всё верно,
после присвоения я смотрю сразу в DBF и вижу
123456789012345000
но если сделать GetItemDecimal то исходное число сохраняется ...

ODBC драйвер глючит, или его связка с PB !
Всем спасибо, теперь ясно где копать.

"Легко искать кошку в комнате если знаешь что она там есть."
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Присвоить decimal(18) в datawindow / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]