如何在双精度数字的开头加上零

时间:2019-03-25 08:43:12

标签: sql oracle format

我正在尝试解决以下问题:

由2个双数相除而得的双数以0开头,并且不会显示。 (例如,我期望0.537,但我只能看到.0537),这是个很大的问题,因为随后将数字转换为字符串,并且我需要在开始时使用这个零。

为获得更好的想象力,请参见代码部分(不适用于这些数字):

...

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

结果:,57300

预期结果:0,57300

谢谢您的回答。

M。

1 个答案:

答案 0 :(得分:2)

您使用了错误的格式。 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='',.''' )