Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Округление... Нужен совет...
|
|||
|---|---|---|---|
|
#18+
Люди, привет..... В общем ситуация: есть поля типа decimal(20,2), в которых хранится денежная информация(рубли, копейки). Дальше требуется произвести с этими полями математические действия, чаще всего деление, а результат сохранить в поле с таким же типом(decimal(20,2)). Вот тут-то все и начинается... В общем проблема с округлением, иногда последний разряд делает -0,01. Нужен практический совет, кто как борется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2006, 16:06 |
|
||
|
Округление... Нужен совет...
|
|||
|---|---|---|---|
|
#18+
может попробовать математические операции переопределить и в них фракции отдельно обрабатывать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2006, 16:26 |
|
||
|
Округление... Нужен совет...
|
|||
|---|---|---|---|
|
#18+
Привет. Сравните Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2006, 16:38 |
|
||
|
Округление... Нужен совет...
|
|||
|---|---|---|---|
|
#18+
Не все так просто... ------------------------------------------------------------------------------ declare global temporary table test (val_1 decimal(20,2), val_2 double, val_3 double) with replace on commit preserve rows not logged in user_tmp DB20000I Команда SQL выполнена успешно. insert into session.test (val_1, val_2, val_3) values (decimal(sysfun.round(2422.2*10/1200,2),20,2),sysfun.round(2422.2*10/1200,2),sysfun.round(2422.2*10/1200,3)) DB20000I Команда SQL выполнена успешно. select * from session.test VAL_1 VAL_2 VAL_3 ---------------------- ------------------------ ------------------------ 20,18 +2,01800000000000E+001 +2,01850000000000E+001 1 записей выбрано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2006, 21:49 |
|
||
|
Округление... Нужен совет...
|
|||
|---|---|---|---|
|
#18+
похоже проблема с sysfun.round? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2006, 21:52 |
|
||
|
Округление... Нужен совет...
|
|||
|---|---|---|---|
|
#18+
TORTпохоже проблема с sysfun.round?Может быть. Только я писал о sysibm.round, а не о sysfun.round. Сравните: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2006, 09:38 |
|
||
|
Округление... Нужен совет...
|
|||
|---|---|---|---|
|
#18+
Не внимательно посмотрел... Хм... Действительно sysibm.round работает корректно... Спасибо за совет... Думаю тема закрыта.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2006, 09:50 |
|
||
|
Округление... Нужен совет...
|
|||
|---|---|---|---|
|
#18+
сорри... "Невнимательно" слитно пишется.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2006, 11:11 |
|
||
|
Округление... Нужен совет...
|
|||
|---|---|---|---|
|
#18+
Ну вот опять( Нельзя людям верить.... ------------------------------ Введенные команды ------------------------------ VALUES(SYSIBM.ROUND(DOUBLE(1633)/DOUBLE(11),2)); VALUES(SYSIBM.ROUND(DOUBLE(1633)/DOUBLE(11),3)); ------------------------------------------------------------------------------ VALUES(SYSIBM.ROUND(DOUBLE(1633)/DOUBLE(11),2)) 1 ------------------------ +1,48450000000000E+002 1 записей выбрано. VALUES(SYSIBM.ROUND(DOUBLE(1633)/DOUBLE(11),3)) 1 ------------------------ +1,48455000000000E+002 1 записей выбрано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2007, 09:43 |
|
||
|
Округление... Нужен совет...
|
|||
|---|---|---|---|
|
#18+
И что? Все правильно. Округление до n цифр после запятой производится не по результатам округления до n+1 цифры, а только по одной n+1 цифре. Иначе пришлось бы залезать до самой последней значащей цифры вправо для выявления таких случаев, как "0,4444........................5". Может быть, где-то так и происходит, но не в db2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2007, 10:11 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=34075381&tid=1604808]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
15ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 336ms |

| 0 / 0 |
