>我正在尝试解决以下问题:
双精度数,即除以 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
谢谢你的回答。
米.
您使用了错误的格式。 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='',.''' )