テーブルのデータ型としてdecimalまたはfloatを使用している場合、どのような決定を行う必要がありますか?
3 に答える
Afloat
は小さく、パフォーマンスが高いため、パフォーマンスが問題になる場合は、を使用することをお勧めしfloat
ます。
decimal
10進数を正確に表すには、Aの方が適しています。Afloat
は数値を2進数で格納するため、10.2のような量を正確に。として格納することはできませんがfloat
、正確に。として格納することはできますdecimal
。正確な小数表現がパフォーマンスよりも重要である場合は、を選択する必要がありますdecimal
。
これをチェックしてください。これはあなたが探しているものかもしれません。それは基本的に違いをもたらします。
整数型では、57 のような値は正確に 57 を表します。それが本当に少し大きいものを表しているのか、それとも少し小さいものを表しているのかは疑問の余地がありません. 値 0 は加算単位を表し (任意の値にゼロを追加すると同じ値が得られます)、値 1 は乗法単位を表し (任意の値に 1 を掛けると同じ値になります)、その他の正の値は、1 が必要な回数を表します。に到達するためにゼロに追加されます (たとえば、2 は 1+1、3 は 1+1+1 など)。負の値は、対応する正の値の加算逆数を表します。
バイナリ浮動小数点型では、値は正確な数値を表していません。むしろ、一部のセンチネル値を除いて、すべての浮動小数点値には、最適な表現と見なされる数値の範囲があります。その範囲内の 1 つの数値が「公称値」と見なされます。IEEE 標準では、2 つの浮動小数点値を加算すると、それらの公称値を加算することによって生成される数値の最良の表現が得られる必要がありますが、それはfloat
公称値がたまたま正確に 2000000.125 である が実際にその正確な数値を表すことを意味しません。量。これは、計算結果 (例: 20000000.0f/10.0f) を表している可能性が高く、その結果はfloat
他の値よりもその値でより適切に表現できます。
この型はまたはDecimal
よりも高い精度を提供しますが、主な用途は正確な小数 (1.37 など) を表すことです。型のセマンティクスは、実際には のような正確な型よりも不正確な型のセマンティクスに近いです。たとえば、1 兆を数値に加算してから 1 兆を減算すると、開始値とは異なる数値になる可能性があるためです。型の目的が正確な小数を識別することである場合、または型が提供できる追加の精度が必要な場合は、その癖にもかかわらず、適切に適合する可能性があります。それ以外の場合、1.37 と表示される値が実際には 1.37 が最も便利な表現である数値を表しているが、実際には多少大きいか小さい場合がある場合は、次のように入力します。float
double
double
int
Decimal
double
よりコンパクトになり、作業が速くなります。