在Oracle数据库中,当你使用TO_CHAR函数将数字转换为字符串时,该函数的行为会依据你提供的格式模型(format model)而变化。如果你仅仅使用TO_CHAR(0.5)而不指定任何格式模型,Oracle会默认使用NLS_NUMERIC_CHARACTERS参数中的设置来决定小数点和小数点后的数字如何显示。通常,这个参数设置为逗号作为千位分隔符(取决于区域设置,可能不是所有地区都如此),点作为小数点。

下面的两种结果都会导致输出.5(或者.5aaa)

SELECT TO_CHAR(0.5) FROM DUAL;

SELECT 0.5||'aaa' FROM DUAL;

你可以使用这种方法来避免

TO_CHAR(0.5, 'FM99990D0')||''
TO_CHAR(0.5, 'FM999999999999990.00')
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐