11

float に変換される SQL int の場合、浮動小数点数の精度を設定するにはどうすればよいですか?

これは、小数点以下 2 桁または 3 桁に切り捨てたい選択です。

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

ありがとう!

4

2 に答える 2

24

TSQL では、 floatに 24 または 53の 2 つの異なるサイズを指定できます。これにより、精度がそれぞれ 7 桁または 15 桁に設定されます。

設定した小数点以下の桁数に切り捨てるだけの場合は、 ROUNDを使用できます。つまり、次のようになります。

ROUND(AVG(CAST(e.employee_level as float)), 3)
于 2012-06-20T19:27:19.480 に答える
3

原則として、浮動小数点数の小数点以下の桁数は指定できません。浮動小数点データ型は、任意の値に最も近い浮動小数点近似を格納します。最も近い浮動小数点近似では、必要な桁数が得られない可能性があります。3桁目以降のすべての桁を抑制できる場合もありますが、それは値自体ではなく、値の外観のみを変更します。

整数は別の話です。整数(格納、変換、または浮動小数点データ型へのキャスト)は、正確に広い範囲に格納されます。浮動小数点データ型は、整数の小数単位を格納する必要はありません。

私はあなたのためのベストプラクティスはすることですが、お勧めします

  • 分数単位が必要ない場合は、整数を浮動小数点にキャストしないでください。
  • 分数単位必要な場合は、整数を10進数または数値にキャストします。
  • 表示の問題を完全にアプリケーションコードで処理します。
于 2012-06-20T19:43:59.750 に答える