Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Ошибка DW Computed Object v6.5 - 10.0 / 9 сообщений из 9, страница 1 из 1
27.08.2007, 12:42
    #34754293
Badger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка DW Computed Object v6.5 - 10.0
Добрый день.
Опишу ошибку: При вычитание двух полей decimal {2} в поле Computed Object в восьмом разряде после запятой появляется число! Как это может быть?

Числа такие:
поле a = 516906610,99
поле b = 495544659,21
Computed Object a - b = 21361951,78000003

Что можно сказать про 000003 ?
...
Рейтинг: 0 / 0
27.08.2007, 13:27
    #34754519
KOLCHOZ_POSTEVENT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка DW Computed Object v6.5 - 10.0
Взгляните на формат компьютерного поля.
Там,наверное,GENERAL.
Поменяйе его на ваш формат,с которым вы работаете: ###,###,###.##,чо будет?
...
Рейтинг: 0 / 0
27.08.2007, 13:39
    #34754599
Badger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка DW Computed Object v6.5 - 10.0
KOLCHOZ_POSTEVENTВзгляните на формат компьютерного поля.
Там,наверное,GENERAL.
Поменяйе его на ваш формат,с которым вы работаете: ###,###,###.##,чо будет?
Если вы умеете замазывать ошибку, то это не значить, что на этом можно работать.
Я нашел эту ошибку когда не сходятся суммы по дебету и кредиту на копейку, а должны были сходиться..... и форматом это уже не замажешь, а доверие к PB в целом и к Computed Object в частности упало...
...
Рейтинг: 0 / 0
27.08.2007, 13:57
    #34754687
ЗоринАндрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка DW Computed Object v6.5 - 10.0
Если с Вашей точки зрения на этом работать нельзя - не работайте!
Вас к компьютеру наручниками приковали?

Взаимоотношения с инструментом строятся не на доверии, а на знании и опыте.
У Вас Computed считается через double, рассчитывать на точность больше 15 знаков не стоит.
Если Вас это не устраивает, найдите способ посчитать так как Вам это надо...
...
Рейтинг: 0 / 0
27.08.2007, 14:00
    #34754696
ЗоринАндрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка DW Computed Object v6.5 - 10.0
И неплохо бы версию PB указывать с точностью до билда.
Телепаты в отпуске. (с)
...
Рейтинг: 0 / 0
27.08.2007, 14:12
    #34754777
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка DW Computed Object v6.5 - 10.0
BadgerДобрый день.
Опишу ошибку: При вычитание двух полей decimal {2} в поле Computed Object в восьмом разряде после запятой появляется число! Как это может быть?

Числа такие:
поле a = 516906610,99
поле b = 495544659,21
Computed Object a - b = 21361951,78000003

Что можно сказать про 000003 ?
Все операнды перед вычислением арифметической операции в DW приводятся к типу NUMBER(он же DOUBLE).
А операция приведения типа в общем случае имеет погрешность.
В данном случае погрешность на несколько порядков меньше точности операндов, поэтому достаточно просто округлить результат до точности операндов, чтобы получить верный и повторяемый результат:

round(a - b, 2)
...
Рейтинг: 0 / 0
27.08.2007, 14:20
    #34754815
KOLCHOZ_POSTEVENT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка DW Computed Object v6.5 - 10.0
Если вам в расчётах нужен восьмой разряд,то,действительно,data window порет,тут некуда деваться.
На 8 знаке после запятой плывёт.
Но я думаю,что плывёт,специфичеки, computed field.
Сожмите его в формате до 6,может,и в расчётах,этого хватит и, того,грязь не появится.
Если заменить его полем и считать в скрипте-должно помочь.
Теоритически,decimal должен держать до 18 знаков,а computed field-оно ж на все случаи жизни,своего типа не имеет,там наверное,в расчётах real или,что-то вроде этого.
...
Рейтинг: 0 / 0
27.08.2007, 14:24
    #34754837
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка DW Computed Object v6.5 - 10.0
Такие ошибки возникают постоянно. Даже не надо ничего вычитать. После простого SetItem можем получить, например, 14.9999999999999998 вместо 15.0
...
Рейтинг: 0 / 0
27.08.2007, 14:48
    #34754974
Badger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка DW Computed Object v6.5 - 10.0
ЗоринАндрейИ неплохо бы версию PB указывать с точностью до билда.
Телепаты в отпуске. (с)
Да написал же что глючит то v6.5 - 10.0 включительно build у меня стоит 5064, но мне бы этот глюк на 6.5.1 победить нужно....

Anatoly MoskovskyВсе операнды перед вычислением арифметической операции в DW приводятся к типу NUMBER(он же DOUBLE).
А операция приведения типа в общем случае имеет погрешность.
В данном случае погрешность на несколько порядков меньше точности операндов, поэтому достаточно просто округлить результат до точности операндов, чтобы получить верный и повторяемый результат:

round(a - b, 2) Наверное это самое полезное из всего вышесказанного, спасибо....

KOLCHOZ_POSTEVENTЕсли заменить его полем и считать в скрипте-должно помочь. заменил полем, не помогло Sum () по колонке выдает такую же погрешность....
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Ошибка DW Computed Object v6.5 - 10.0 / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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