舍入数字的准确性

时间:2012-05-02 15:22:55

标签: sql rounding

我有以下要求 -

1. Get the A_MINUTES column value from TableA for all rows 
2. Sum the A_MINUTES. 
3. Convert the summed minutes values to hours - divide by 60 
4. Round off the final hours value to 2 decimal places.

这需要用SQL编写。

您认为此查询会有任何舍入错误吗?

SELECT ROUND ( (SUM(A_MINUTES)/60.0) , 2) FROM TABLEA

1 个答案:

答案 0 :(得分:1)

是否有任何舍入错误?

这取决于你想要实施的舍入方案 您发布的SQL代码将实现您的目标,但SQL中的默认舍入方案是银行家四舍五入类似于.NET中的默认方案

http://msdn.microsoft.com/en-us/library/ms175003.aspx

以下是SQL中不同舍入方法实现的简要说明:
http://blogs.lessthandot.com/index.php/DataMgmt/DataDesign/sql-server-rounding-methods

如果您想实施银行家的舍入方案(如.NET中的默认方案),那么有几个选项。以下是关于该主题的良好讨论(适用于Oracle,但应适用)
http://www.orafaq.com/forum/t/122001/2/