SQLServerの列の10進データ型を把握しようとしています。15.5、26.9、24.7、9.8などの値を保存できる必要があります
列のデータ型に割り当てdecimal(18, 0)
ましたが、これではこれらの値を保存できません。
これを行う正しい方法は何ですか?
SQLServerの列の10進データ型を把握しようとしています。15.5、26.9、24.7、9.8などの値を保存できる必要があります
列のデータ型に割り当てdecimal(18, 0)
ましたが、これではこれらの値を保存できません。
これを行う正しい方法は何ですか?
DECIMAL(18,0)
小数点以下0桁を使用できます。
DECIMAL(18,4)
代わりに、うまくいくはずのようなものを使用してください!
これにより、合計18桁になり、そのうち4桁は小数点以下(および14桁は小数点前)になります。
使用する必要があるのは次のとおりです。
DECIMAL(m,a)
m
小数が持つことができる合計桁数です。
a
は、小数点以下の最大桁数です。
http://www.tsqltutorials.com/datatypes.phpには、すべてのデータ型の説明があります。
の設定Decimal
は、その精度とスケール、または通常の言語では、数値の桁数と小数点以下の桁数です。
に入れるとPI
、?Decimal(18,0)
として記録されます。3
に入れると?として記録されPI
ます。Decimal(18,2)
3.14
に入れると として記録されPI
ます。Decimal(18,10)
3.1415926535
ほとんどの場合、sql decimal 型で最小のストレージ (5 バイト) を使用する decimal(9,2) を使用します。
精度 => ストレージバイト
0 から 9 999 999.99 まで (前の 7 桁 + 小数点の後ろの 2 桁 = 合計 9 桁) を格納でき、ほとんどの値に十分な大きさです。
MySQL DBdecimal(4,2)
では、合計4桁しか入力できません。でわかるdecimal(4,2)
ように、合計4桁を入力でき、そのうち2桁は小数点以下を保持するためのものです。
したがって、MySQLデータベースに100.0と入力すると、「列の範囲外の値」のようなエラーが表示されます。
したがって、00.00から99.99までの範囲でのみ入力できます。
他の答えは正しいです。あなたの例があなたが望む可能性の全範囲を反映していると仮定しますDECIMAL(3, 1)
。または、DECIMAL(14, 1)
合計 14 桁まで許可されます。何が十分かを考えるのはあなたの仕事です。