2016-05-15 63 views
0

我试图将存储在数据库中的数值作为美分转换为美元并保留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位小数,即使结果是整数?

+0

小数点后两位有效。它们没有被显示,因为如果数字是整数,那里没有任何东西。当你显示它时,你可以格式化它。 https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#i16209 – Mottor

回答

0

使用to_char(),说这两位小数转换为输出格式:

select to_char(v_cent/100.0, 'FM999999.99') 
from dual; 

至于您的配方是做正确的事。唯一的问题是默认情况下不打印出小数点。

+0

感谢您的提示。结果是“200”。使用你的陈述。嗯,有趣... – Dorisacat

+1

@Dorisacat使用'FM999990.00'https://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements004.htm#i34570 – Mottor

+0

@Mottor哦,明白了。现在我明白了0和9背后的含义。非常感谢! – Dorisacat

相关问题