powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Round без нуля
11 сообщений из 11, страница 1 из 1
Round без нуля
    #39992537
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Firebird 3.
Код: sql
1.
SELECT ROUND(10.0, 1) || '/' || ROUND(0.0, 1) || '/' || ROUND(10.12, 1)  FROM RDB$DATABASE


вернет строку "10.0/0.0/10.1", а хотелось бы "10/0/10.1".
Возможно ли такое легко и быстро? Или придется писать свою процедуру/функцию чтобы проверить ".0" и обрезать эти 2 символа?

P.S. В реале вместо 10.0, 0.0 и 10.12 поля типа DOUBLE PRECISION.

Спасибо.
...
Рейтинг: 0 / 0
Round без нуля
    #39992542
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Преобразовать к integer?
...
Рейтинг: 0 / 0
Round без нуля
    #39992544
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но тогда 10.12 округлиться тоже к 10,а должно быть 10.1
...
Рейтинг: 0 / 0
Round без нуля
    #39992553
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Или придется писать свою процедуру/функцию

Да, придётся писать. И вообще нефиг заниматься форматированием на сервере.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Round без нуля
    #39992556
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
Firebird 3.
Код: sql
1.
SELECT ROUND(10.0, 1) || '/' || ROUND(0.0, 1) || '/' || ROUND(10.12, 1)  FROM RDB$DATABASE


вернет строку "10.0/0.0/10.1", а хотелось бы "10/0/10.1".
Возможно ли такое легко и быстро? Или придется писать свою процедуру/функцию чтобы проверить ".0" и обрезать эти 2 символа?

P.S. В реале вместо 10.0, 0.0 и 10.12 поля типа DOUBLE PRECISION.

Спасибо.


Код: sql
1.
select cast( 123.456 as numeric(15,2))||'/'||cast( 123.456 as numeric(15,1))||'/'||cast( 123.456 as numeric(15,0)) from RDB$DATABASE
...
Рейтинг: 0 / 0
Round без нуля
    #39992560
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor, Вы так и не поняли проблему.
Выводить дробную часть нужно только, если она больше нуля
...
Рейтинг: 0 / 0
Round без нуля
    #39992561
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Выводить

Firebird не занимается выводом. Это задача клиентских приложений.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Round без нуля
    #39992562
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11> pastor, Вы так и не поняли проблему.

Мы поняли твою попытку (которая тебе не нравится)
решения проблемы (которую ты не озвучил).

Нужно для чего? Откуда берётся округляемое и
куда (и зачем) отправляется результат "округления"?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Round без нуля
    #39992567
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не страдайте фигнёй!
Код: plsql
1.
2.
3.
4.
SELECT Trim(TRAILING '.0' FROM Round(10.0, 1))
    || '/' || Trim(TRAILING '.0' FROM Round(0.0, 1))
    || '/' || Trim(TRAILING '.0' FROM Round(10.12, 1))
  FROM RDB$DATABASE
...
Рейтинг: 0 / 0
Round без нуля
    #39992569
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev, спасибо большое.
То, что надо.
...
Рейтинг: 0 / 0
Round без нуля
    #39992576
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это только для первого знака после запятой (т.е. для целых).

P.S. В корень зрить надо.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Round без нуля
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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