Есть проблемка с дробными значениями чисел, хранящимися в БД.
БД firebird - что не суть - то и важно. Есть поле в табличке с типом double precision.
Допустим, я записал в поле значение 38.95. Потом делаю некоторые необходимые манипуляции с этим числом. К примеру: ceil(38.95 * 100). В итоге 3896 =)
Почему так происходит, я думаю нет смысла объяснять, но все же. Число, к которому применяется функция ceil имеет уже вид примерно 3895.0000...001. Вот как это дело полечить?)
1. SAD - 06 Августа, 2013 - 14:34:21 - перейти к сообщению
2. EuGen - 06 Августа, 2013 - 14:42:59 - перейти к сообщению
Самое простое - отталкиваться от базовой точности чисел с плавающей точкой на Вашей системе.
Приведу пример для положительных чисел:
Приведу пример для положительных чисел: