Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL集浮点精度_Sql_Floating Point_Precision_Truncate - Fatal编程技术网

SQL集浮点精度

SQL集浮点精度,sql,floating-point,precision,truncate,Sql,Floating Point,Precision,Truncate,对于正在转换为浮点数的SQL int,如何设置浮点数的精度 这是我要截断为小数点后两位或三位的选择: AVG(Cast(e.employee_level as Float))avg_level, 谢谢 在TSQL中,可以为24或53指定两种不同的大小。这将分别将精度设置为7或15位 如果您只想将其截断到设定的小数位数,则可以使用,即: 一般来说,不能为浮点数指定小数点后的位数。浮点数据类型存储与任何给定值最接近的浮点近似值。最接近的浮点近似值不太可能具有所需的位数。虽然您可能可以抑制第三个数字

对于正在转换为浮点数的SQL int,如何设置浮点数的精度

这是我要截断为小数点后两位或三位的选择:

AVG(Cast(e.employee_level as Float))avg_level,

谢谢

在TSQL中,可以为24或53指定两种不同的大小。这将分别将精度设置为7或15位

如果您只想将其截断到设定的小数位数,则可以使用,即:


一般来说,不能为浮点数指定小数点后的位数。浮点数据类型存储与任何给定值最接近的浮点近似值。最接近的浮点近似值不太可能具有所需的位数。虽然您可能可以抑制第三个数字之后的每个数字,但这只会更改值的外观,而不会更改值本身

整数是另一回事。整数——存储、转换或转换为浮点数据类型——将在大范围内精确存储。浮点数据类型不必为整数存储任何分数单位

不过,我建议你最好的做法是

  • 如果不需要小数单位,请避免将整数强制转换为浮点,或者
  • 如果需要小数单位,则将整数强制转换为十进制或数字,或者
  • 完全在应用程序代码中处理显示问题

应该注意,如果对除24或53以外的一些n使用float(n),则它将被四舍五入到24或53
ROUND(AVG(CAST(e.employee_level as float)), 3)