web-dev-qa-db-ja.com

SQLの浮動小数点精度の設定

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

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

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

ありがとう!

9

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

小数点以下の桁数を切り捨てるだけの場合は、 [〜#〜] round [〜#〜] を使用できます。

ROUND(AVG(CAST(e.employee_level as float)), 3)
22
Bort

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

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

あなたのためのベストプラクティスは

  • 小数単位が必要ない場合は、整数を浮動小数点にキャストしないでください。
  • do小数単位が必要な場合は、整数を10進数または数値にキャストします。
  • アプリケーションコードで完全に表示の問題を処理します。