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



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

双精度数,

即除以 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='',.''' )

最新更新