小编SAL*_*NTA的帖子

求和的小数舍入?

我正在使用下表编写SQLServer 2008:

id      user      program   seconds
------------------------------------
9999  'user01'    'pr01'       5
Run Code Online (Sandbox Code Playgroud)

列'秒'定义为小数(14,0),表中唯一的行是显示的行.

所以我尝试了一些问题:

Q1:

select seconds*0.95 from myTable
union all
select seconds from myTable
Run Code Online (Sandbox Code Playgroud)

它给出了我期望的结果:

4.75
5.00
Run Code Online (Sandbox Code Playgroud)

Q2:

select sum(seconds)*0.95 from myTable
union all
select sum(seconds) from myTable
Run Code Online (Sandbox Code Playgroud)

我期待与第一季度相同的结果,但我得到的结果是:

5
5
Run Code Online (Sandbox Code Playgroud)

Q3:

select sum(seconds)*0.95 from myTable
union all
select sum(seconds)*1.00 from myTable
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我得到了我期望的结果:

4.75
5.00
Run Code Online (Sandbox Code Playgroud)

所以,我想知道为什么Q2没有得到预期的结果.我尝试了相同的例子,'秒'是十进制(2,0)并且工作正常,所以我猜它与小数的大小有关,但在这种情况下,我无法弄清楚为什么Q1和Q3工作时Q2没有.

sql decimal rounding

5
推荐指数
1
解决办法
1114
查看次数

标签 统计

decimal ×1

rounding ×1

sql ×1