sql round字段怎么用

上周 查看此函数 ROUND
1 2 3 .4 5 6 7 , 2 输出1 2 3 .4 6
1 2 3 .4 5 6 7 , 0 生产 1 2 3
1 2 3 .4 5 6 7 , -1 输出 1 2 0
字段类型限制 仅限数字类型
不修改原始数据 要更改表,必须使用 UPDATE
negative_digits 从右到左
银行家的舍入规则 有些数据库是特殊的财务计算 金额保留两位数
数据聚合 按数百分组
摘要 正数是小数 零被四舍五入 负数是整数位
数据库差异 这要看具体情况
算了

Oracle SQL语句实现数字四舍五入取整

嗯,Oracle 的数字运算功能实际上非常有趣。
你已经总结得很全面了。
上次做报告的时候,因为小数点的问题,头疼了一段时间。

你看,四舍五入后地板和行李箱真的很不一样。
地板被严格设计得尽可能小。
例如,如果负数为 -2 ,3 ,则下限 (-2 ,3 ) 为 -3 ,因为 -3 小于 -2 但无论trunc是正数还是负数,小数部分都会被直接截去。
trunc(-2 .3 ,0) 的结果是-2 上次我差点把这个细节搞错了,数据也不匹配。

还有四舍五入。
当精度参数为负数时要注意这一点。
例如,round(1 2 3 ,4 5 6 ,-1 )的结果是1 2 0,因为它四舍五入到最接近的1 0,而1 2 3 ,4 5 6 四舍五入到最接近的1 0你总结得到5 .5 的round(5 ,5 3 4 .1 )是正精度,没问题。

格式化 to_char 时,不要对“9 9 9 ”和“0”之间的区别感到困惑。
“9 9 9 ”仅显示数字,不显示多余的数字。
如果数字少于三位数,则前面会有一个空格。
但“0”必须显示指定的位数。
如果不够,就加0。
例如:to_char(0.1 2 3 ,'0.00') 为 '0.1 2 ',to_char(0.1 2 3 ,'9 9 9 9 .9 9 ') 为 '0.1 2 '(前两个空格)。
上次我准备财务报表时就陷入了这个陷阱,因为客户要求数字对齐,所以“0”就可以了。

但是,你提到的基本操作是很常见的。
只是感觉Oracle人在设计函数的时候,有些函数名确实很混乱。
例如,trunc 可以进行截断和四舍五入。
你只能通过查看上下文才能知道它的作用。
不管怎样,记住,下限一定要取尽可能小,截断要看情况,负数取零,正数截断,四舍五入取决于确切的符号是正数还是负数,‘0’被填充,‘9 ’不被填充。