对于正在转换为float的SQL int,如何设置浮点数的精度?
这是我想要截断到两位或三位小数的选择:
AVG(Cast(e.employee_level as Float))avg_level,
谢谢!
答案 0 :(得分:22)
在TSQL中,您可以为float,24或53指定两种不同的大小。这会将精度分别设置为7或15位。
如果你要做的就是截断到一定数量的小数位,你可以使用ROUND,即:
ROUND(AVG(CAST(e.employee_level as float)), 3)
答案 1 :(得分:3)
作为一般规则,您不能指定浮点数小数点后的位数。浮点数据类型将最接近的浮点近似值存储到任何给定值。最接近的浮点近似不太可能具有您想要的位数。虽然您可以在第三个数字之后抑制每个数字,但这只会改变值的外观,而不是值本身。
整数是一个不同的故事。整数 - 存储,转换或强制转换为浮点数据类型 - 将精确存储在大范围内。浮点数据类型不必存储整数的任何小数单位。
我建议,尽管你最好的做法是