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