您的位置:首页 > 其它

使用Decimal类型格式化数据

2011-10-12 16:37 274 查看
1、int  或 float 类型转为Decimal类型的时候注意Decimal的长度,

将int型转为Decimal型

declare @a  int
set @a = 100
select CONVERT(decimal(4,2), @a)

 

输出:10.00;

 

如果将100赋值给变量@a

declare @a  int
set @a = 100
select CONVERT(decimal(4,2), @a)

 

执行后会报错:

消息 8115,级别 16,状态 8,第 4 行

将 int 转换为数据类型 numeric 时出现算术溢出错误。

 

因为Decimal(4,2)只有两个整数位,而100是3位整数,因此会产生溢出。

 

结论: 将值赋给Decima(m, n)l类型是,值的整数部分的位数不能大于定义的Decimal(m, n)的整数位m-n;

 

declare @b float
set @b = 10.1
select CONVERT(decimal(4, 2), @b)

 

输出: 10.10

declare @b float
set @b = 10.001
select CONVERT(decimal(4, 2), @b)

 

输出: 10.00

 

declare @b float
set @b = 10.007
select CONVERT(decimal(4, 2), @b)

 

输出: 10.01

结论:将值赋给Decima(m, n)l类型是,值的小数部分的位数只会保留n位,且按n+1位四舍五入

 

 


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  float
相关文章推荐