我正在尝试解决以下问题:
由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。
答案 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='',.''' )