5

私はいくつかの非常に単純な計算を行っており、結果を MS SQL2008 DB に保存しています。

1 <-> 5 のバイト値であるいくつかの数値を平均しています。おそらく小数点以下2桁だけを記録したいと思います。小数第 2 位の丸めは気にしません (たとえば、1.155 == 1.5 または 1.6 .. 私はあまり段階的ではありません)。

だから..平均結果をfloat、decimal、またはdoubleとして保存する必要がありますか?

LINQ が返すものを確認すると、3 つの値すべてを返すことができます。

最後に、関連する SQL データ型フィールドは何でしょう。

乾杯!

4

5 に答える 5

2

必要なのはDECIMALデータ型です。

declare @val decimal(10,2)
select @val = 10.155
select @val

値を入力するときは、組み込みの丸めに依存するか、必要な丸めを明示的に決定できます。

select val = round(10.155, 2, 0) -- rounded
select val = round(10.155, 2, 1) -- truncated

Decimal(10,2)は、10桁を使用でき、そのうちの2桁は小数点以下と見なされることを意味します。つまり、decimal(4,2)に含めることができる最大の数値は99.99です。100に設定しようとすると、算術オーバーフローが発生します。

于 2008-12-04T15:59:01.737 に答える
1

Double よりも Float を選択し、おそらく Decimal よりも Float を選択します。すべてが同じ結果をもたらすはずですが、私は Float を選びます。

Floats & Decimalsについては、これらの 2 つのページをご覧ください。

于 2008-12-04T11:41:54.877 に答える
1

小数は主に通貨に使用されます。それは機能しますが、人々はそれを混乱させるかもしれません. この場合、float の方が適していると思います。

于 2008-12-04T16:02:56.893 に答える
0

できるだけ少ないスペースを使用して結果を保存したい場合は、おそらく次のようなことを行うことができます(擬似コード)。

integer = ( sum(all_values) / all_values.count().float ) * 100;

これにより、平均3.52の値352が得られるため、整数として格納でき(バイトは十分に大きいと思います)、表示する場合は100で除算するだけです。

一方、平均値の格納を気にしない場合は、float値を使用する方がおそらく高速です。(両方をテストして、システムで実際に最速のものを確認してください。)

于 2008-12-04T11:43:32.907 に答える
0

10 進数 - 最も単純ですが、言及されているものはどれでも機能します

于 2008-12-04T11:32:44.367 に答える