чёртово округление
От | engineer |
---|---|
Тема | чёртово округление |
Дата | |
Msg-id | 8cac8dd0812022224o6a0063dcg3a832be05e1e4d05@mail.gmail.com обсуждение исходный текст |
Список | pgsql-ru-general |
Хай. Тривиальная задача, округлить сумму до копеек. Вот фрагмент: IF K_debug >= 2 THEN RAISE LOG ' FLOORing p_abon_pay[%] -> p_abon_pay[%]', p_abon_pay, floor(p_abon_pay * 100.0) / 100.0; END IF; p_abon_pay := floor(p_abon_pay * 100.0) / 100.0; IF K_debug >= 2 THEN RAISE LOG ' ROUNDing p_abon_pay[%] -> p_abon_pay[%]', p_abon_pay, round(p_abon_pay::numeric(10,2), 2); END IF; p_abon_pay := round(p_abon_pay::numeric(10,2), 2); IF K_debug >= 2 THEN RAISE LOG ' p_balance[%] - p_abon_pay[%] -> p_balance[%]', p_balance, p_abon_pay, p_balance - p_abon_pay; END IF; А в логе вижу такое: FLOORing p_abon_pay[24.193548387096776] -> p_abon_pay[24.190000000000001] ROUNDing p_abon_pay[24.190000000000001] -> p_abon_pay[24.19] p_balance[-29164.045435905457] - p_abon_pay[24.190000000000001] -> p_balance[-29188.235435905455] ^^^^^^^^^^^^^^^^^ То есть в лог сначала выдаётся округлённый результат, а после присвоения его опять же переменной - снова становится "некрасивым". Чо делать-то? -- engineer
В списке pgsql-ru-general по дате отправления: