在SQL中舍入到2个小数位

时间:2013-11-01 03:18:38

标签: sql oracle rounding

每次我想要舍入到小数点后2位小数它不想舍入它... 我怎么能把它四舍五入到小数点后两位,这样会给我92.00而不只是92 ???

SELECT ROUND(COLUMN_NAME,2) FROM ....

它给了我

COLUMN_NAME
92

但我想要

COLUMN_NAME
92.00

我使用了TO_CHAR并且工作正常

ROUND(TO_CHAR(COLUMN_NAME),2)

谢谢你们!

5 个答案:

答案 0 :(得分:22)

您可以尝试使用TO_CHAR函数转换结果

e.g。

SELECT TO_CHAR(92, '99.99') AS RES FROM DUAL

SELECT TO_CHAR(92.258, '99.99') AS RES FROM DUAL

希望有所帮助

答案 1 :(得分:7)

尽量避免在查询中进行格式化。您应该以原始格式返回数据,并让接收应用程序(例如报告服务或最终用户应用程序)进行格式化,即舍入等。

格式化服务器中的数据会使您更难(甚至不可能)进一步处理数据。您通常希望导出表或进行一些聚合,例如求和,平均等。当数字作为字符串(varchar)到达时,通常没有简单的方法来进一步处理它们。一些报告设计者甚至拒绝提供聚合这些“数字”的选项。

此外,最终用户将看到服务器的国家特定格式,而不是他自己的PC。

另外,考虑舍入问题。如果您对服务器中的值进行舍入,然后仍然进行一些计算(假设客户端能够将数字字符串还原为某个数字),则最终会得到错误的结果。

答案 2 :(得分:4)

尝试使用带有FORMAT选项的COLUMN命令:

COLUMN COLUMN_NAME FORMAT 99.99
SELECT COLUMN_NAME FROM ....

答案 3 :(得分:2)

这也可以。下面的语句四舍五入到小数点后两位。

从double中选择回合(92.258,2);

答案 4 :(得分:0)

尝试一下...

preventDefault()