Как добавить ноль в начале двойного числа - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь решить следующую проблему:

Двойное число, являющееся результатом деления двух двойных чисел, имеет начало 0, и оно не отображается. (Например, я бы ожидал 0,537, но я вижу только 0,0537) Это довольно проблематично, потому что число затем преобразуется в строку, и мне нужен этот ноль в начале.

Для лучшего воображения, пожалуйста, посмотрите часть кода (которая не работает для этих чисел):

...

ELSE REPLACE(TRIM(to_char(ROUND(ab.price, 5)/ABS(ROUND(ab.position,5)), '999999.99999')),'.',',') END as Price
...

результат: ,57300

ожидаемый результат: 0,57300

Спасибо за ответы.

М.

1 Ответ

2 голосов
/ 25 марта 2019

Вы используете неправильный формат.9 для дополнительной цифры.Используйте 0 для обязательного.Вы получаете десятичный разделитель, соответствующий вашим региональным настройкам, с D:

TO_CHAR( ROUND(ab.price, 5)/ABS(ROUND(ab.position, 5), '999990D99999' )

Если вы хотите, чтобы запятая была десятичным разделителем независимо от ваших настроек, укажите это с помощью NLS_NUMERIC_CHARACTERS:

TO_CHAR(
  ROUND(ab.price, 5)/ABS(ROUND(ab.position, 5), 
  '999990D99999', 
  'NLS_NUMERIC_CHARACTERS='',.''' )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...