在SQL里面怎样才能让一个数字四舍五入成两位小数?(50分)

  • 主题发起人 主题发起人 ruolink
  • 开始时间 开始时间
R

ruolink

Unregistered / Unconfirmed
GUEST, unregistred user!
在SQL里面怎样才能让一个数字四舍五入成两位小数?我用round,可是这样写的时候有问题:

round(123.33333,2) 结果是123.33000,我想要的结果是123.33

怎么办?
 
通过改变相应控件的显示格式。
小数点后面有几个 0 有什么关系。
硬要那样,查询时转换为字符串型。
 
displayformat里改一下0.00
 
我很少用round的,我一般用format函数的!
format('%0.2f',[123.33333]);
 
select CONVERT(decimal(10,2),123.33333)
 
roundto(123.33333,2)
 
[red]select cast(yourfield as numeric(28,2) from yourtable[/red]
 
好像都不对啊~~

我也正在寻找
Round保留一位小数出现bug
declare @sd Real
set @sd = 32.35
set @sd = Convert(Decimal(3,1),@sd)--无论怎么转化都是32.3,用round也不行。为什么不是32.4呢?
那位高手能回答?
print @sd
 
是因Real类型在SQL的数据结构中用的不是精确表示法,
所以set @sd = 32.35的结果可能变成32.349999999.., 所以给舍掉了,
你可以试试用其它精确的数值(Numeric,Decimal)类型定义@sd,肯定没问题!

 
round(123.33333*100)/100
 
谢谢bryanwang

换成Decimal(19,2)或者Numeric(19,2)就可以了
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部