powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / конвертация double в varchar
8 сообщений из 8, страница 1 из 1
конвертация double в varchar
    #36005761
Ivan_kez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
есть строка
Код: plaintext
UPDATE DOCUM.CONTRACT SET PRICE_A=CHAR(PRICE);
столбец PRICE типа DOUBLE
столбец PRICE_A типа VARCHAR
необходимо произвести UPDATE.
при вот такой CHAR(PRICE) записи в PRICE_A возвращается неправильно сконвертированное значение(там где должно быть 457314.40625 стоит 4.5731440625E5). что посоветуете?
...
Рейтинг: 0 / 0
конвертация double в varchar
    #36006354
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

В v9.5 можно CHAR(DECFLOAT(PRICE)), иначе можно написать c-udf из 1 строки или как-то вырезать лидирующие нули от CHAR(DEC(PRICE, M, N)).
...
Рейтинг: 0 / 0
конвертация double в varchar
    #36006986
Ivan_kez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,

сервер 9.1 так что с DECFLOAT() не получится.
расскажите пожалуйста про
авторвырезать лидирующие нули от CHAR(DEC(PRICE, M, N))
как в моем случае применить?
...
Рейтинг: 0 / 0
конвертация double в varchar
    #36007012
golsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
REPLACE( ...REPLACE( ' '||CHAR(DEC(PRICE, M, N)),' 0',' '),...' 0',' ')
вот так например M-N-1 вложенный REPLACE.
После преобразования добавляешь в переди пробел и пару пробел + "0" заменяешь на пробел или два пробела.
...
Рейтинг: 0 / 0
конвертация double в varchar
    #36007113
Ivan_kez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не очень понятно.
Не уж то нет по проще метода?
...
Рейтинг: 0 / 0
конвертация double в varchar
    #36007133
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_kezрасскажите пожалуйста про
авторвырезать лидирующие нули от CHAR(DEC(PRICE, M, N))
как в моем случае применить?Ну, как-то так:
Код: plaintext
translate(trim(translate(char(dec(PRICE,  31 ,  5 )), ' ', '0')), '0', ' ')
...
Рейтинг: 0 / 0
конвертация double в varchar
    #36007365
Ivan_kez,

Ну вот еще вариант, правда не особо проще.
Код: plaintext
STRIP(STRIP(RTRIM(CHAR(DECIMAL(PRICE, 31 , 15 ),'.')),B,'0'),T,'.')
DECIMAL(X,31,15). Преобразование в тип DECIMAL. 31 - макс.значение. 15 - кол-во знаков после точки.
CHAR(X,'.') - преобразование в символьную строку. Разделитель целой/дробной - точка
RTRIM(X) - отрезаем пробел(ы) в конце строки (они будут после работы CHAR)
STRIP(X,B,'0') - отрезаем символы '0' с обоих сторон строки.
STRIP(X,T,'.') - отрезаем символ '.' с конца строки( это нужно, если дробная часть нулевая)

Это выражение будет работать только для неотрицательных чисел.

Можно создать функцию для этой цели на основе приведенного выражения.
...
Рейтинг: 0 / 0
конвертация double в varchar
    #36007400
Ivan_kez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
большое спасибо!
последний вариант больше всего подошел.
т.к. это одноразовая операция, то в функцию выносить мне не имеет смысла.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / конвертация double в varchar
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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