Вопрос № 94571: Подскажите пожалйста СУБД Interbase
выполняю Sql
cast("9.67" as decimal(9,2))||" руб." as ST_RUB
результат 9.67 руб.
выполняю Sql
cast("9.67" as decimal(15,2))||" руб." as ST_RUB<b...
Вопрос № 94.571
Подскажите пожалйста СУБД Interbase
выполняю Sql
cast("9.67" as decimal(9,2))||" руб." as ST_RUB
результат 9.67 руб.
выполняю Sql
cast("9.67" as decimal(15,2))||" руб." as ST_RUB
результат 9.670000000000000 руб.
как этого избежать?
Отправлен: 10.07.2007, 10:00
Вопрос задал: Ton (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: Виктор Пырлик
Здравствуйте, Ton!
Вы не указали диалект – это важно.
Точные числа, определенные с точностью больше 9 хранятся как double precision. Следовательно, последний результат как обыкновенное число с плавающей запятой. Первый запрос вполне уместен, если вас он устраивает. Для добавления разрядности (после запятой) просто увеличьте число 2. Можно повторно использовать CAST как char(N) но, стоит ли?
--------- Если ничего не помогло - надо читать инструкцию
Ответ отправил: Виктор Пырлик (статус: 6-ой класс)
Ответ отправлен: 10.07.2007, 10:58