我试图将存储在数据库中的数值作为美分转换为美元并保留2位小数。在将美分转换为美元后,SQL保留整数的两位小数
下面的代码将工作只有v_cent/100.00不是整数
SELECT CAST(ROUND(v_cent/100.00, 2) AS NUMERIC(8,2)) FROM DUAL;
如果v_cent = 20000,那么结果是200
我怎么会保留2位小数,即使结果是整数?
我试图将存储在数据库中的数值作为美分转换为美元并保留2位小数。在将美分转换为美元后,SQL保留整数的两位小数
下面的代码将工作只有v_cent/100.00不是整数
SELECT CAST(ROUND(v_cent/100.00, 2) AS NUMERIC(8,2)) FROM DUAL;
如果v_cent = 20000,那么结果是200
我怎么会保留2位小数,即使结果是整数?
使用to_char()
,说这两位小数转换为输出格式:
select to_char(v_cent/100.0, 'FM999999.99')
from dual;
至于您的配方是做正确的事。唯一的问题是默认情况下不打印出小数点。
小数点后两位有效。它们没有被显示,因为如果数字是整数,那里没有任何东西。当你显示它时,你可以格式化它。 https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#i16209 – Mottor