日期:2014-05-17  浏览次数:20439 次

问一个相关值类型转换的问题
例如select 1.0/3后默认保留的小数点为6位 这个结果对于sql sever来说是什么类型的数值呢

如果我想帮整数转为小数点后2位数值 是使用decimal(x,2)快呢 还是直接*1.00来确定格式呢 这有区别嘛
某句语句消耗过大 有较多数据类型转换只是用来定义小数点格式

------解决方案--------------------
小数为float型,帮整数转为小数点后2位数值直接*1.00吧
------解决方案--------------------
1.select 1.0/3 结果是float类型。
2.decimal(x,2)与x*1.00效率上没什么区别
------解决方案--------------------
SQL code
1.select 1.0/3 结果是float类型的。值是非确定性的有较大误差。一般不使用该种类型。

2 decimal(x,y)这种类型要优于 float,现在普遍用来替换 float。 效率上应该是没有差别的。

整数转为小数点后2位数值 的话 用 cast(x as decimal(18,2)) 这种方式更好一些。起码误差不是特别大