使用round(value,2)
对plsql中的列值进行舍入就足够了。例如,1.2222可以通过plsql中的该函数转换为1.22。
我如何在SQL Server中执行此操作?当我使用round(1.2222,2)
时,它转换为1.2200。我想要1.22。谢谢你的帮助
答案 0 :(得分:5)
数学上,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,因为已知更多有效数字。
答案 1 :(得分:0)
十进制(10,4)和十进制(10,2)是两种不同的类型。所以25.55和25.5555是不同的类型。但如果你使用float(4),那么这两个数字是相同的数据类型。