gpt4 book ai didi

sql-server - 在 SQL Server 2008 中四舍五入为两位数

转载 作者:行者123 更新时间:2023-12-03 12:48:07 27 4
gpt4 key购买 nike

在 plsql 中使用 round(value,2) 对列值进行四舍五入就足够了。例如 1.2222 可以通过 plsql 中的那个函数转换为 1.22。

我如何在 SQL Server 中执行此操作?当我使用 round(1.2222,2) 时,它会转换为 1.2200。我想要 1.22。感谢帮助

最佳答案

在数学上,1.2200 和 1.22 是完全相同的数字。

数字的显示实际上是一个字符串,与数字的物理内容不同,所以数字在SQL Server和Oracle中四舍五入是一样的,只是显示方式不同罢了。

关于 SQL 浮点类型的更多信息:如果您将变量声明为具有 s 个小数位,它将始终显示为具有 s 个小数位,无论值,例如

declare @x decimal(10,6)
declare @y decimal(10,2)
set @x =3
set @y=@x -- identical to set @y=cast(@x as decimal(10,2))

select @x -- selects 3.000000
select @y -- selects 3.00

select 'The number is ' + cast(@x as varchar) -- selects 'The number is 3.000000'
select 'The number is ' + cast(@y as varchar) -- selects 'The number is 3.00'

不过,3.00和3.0000的含义在技术上是有区别的,那就是数字的相对误差。由于所有实数都是四舍五入的,因此 3.00 实际上意味着 3 +/- 0.005,而 3.0000 实际上是 3 +/- 0.00005,因为已知更多有效数字。

关于sql-server - 在 SQL Server 2008 中四舍五入为两位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5497023/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com