292

SQLServerの列の10進データ型を把握しようとしています。15.5、26.9、24.7、9.8などの値を保存できる必要があります

列のデータ型に割り当てdecimal(18, 0)ましたが、これではこれらの値を保存できません。

これを行う正しい方法は何ですか?

4

8 に答える 8

530

DECIMAL(18,0)小数点以下0桁を使用できます。

DECIMAL(18,4)代わりに、うまくいくはずのようなものを使用してください!

これにより、合計18桁になり、そのうち4桁は小数点以下(および14桁は小数点前)になります。

于 2009-05-01T21:09:19.017 に答える
142

使用する必要があるのは次のとおりです。

DECIMAL(m,a)

m小数が持つことができる合計桁数です。

aは、小数点以下の最大桁数です。

http://www.tsqltutorials.com/datatypes.phpには、すべてのデータ型の説明があります。

于 2009-05-01T21:17:00.557 に答える
44

の設定Decimalは、その精度とスケール、または通常の言語では、数値の桁数と小数点以下の桁数です。

に入れるとPI、?Decimal(18,0)として記録されます。3

に入れると?として記録されPIます。Decimal(18,2)3.14

に入れると として記録されPIます。Decimal(18,10)3.1415926535

于 2009-05-01T22:04:48.273 に答える
39

ほとんどの場合、sql decimal 型で最小のストレージ (5 バイト) を使用する decimal(9,2) を使用します。


精度 => ストレージバイト

  • 1 - 9 => 5
  • 10-19 => 9
  • 20-28 => 13
  • 29-38 => 17

0 から 9 999 999.99 まで (前の 7 桁 + 小数点の後ろの 2 桁 = 合計 9 桁) を格納でき、ほとんどの値に十分な大きさです。

于 2015-06-16T03:28:11.497 に答える
6

MySQL DBdecimal(4,2)では、合計4桁しか入力できません。でわかるdecimal(4,2)ように、合計4桁を入力でき、そのうち2桁は小数点以下を保持するためのものです。

したがって、MySQLデータベースに100.0と入力すると、「列の範囲外の値」のようなエラーが表示されます。

したがって、00.00から99.99までの範囲でのみ入力できます。

于 2013-02-17T13:34:35.187 に答える
3

他の答えは正しいです。あなたの例があなたが望む可能性の全範囲を反映していると仮定しますDECIMAL(3, 1)。または、DECIMAL(14, 1)合計 14 桁まで許可されます。何が十分かを考えるのはあなたの仕事です。

于 2009-05-01T21:27:24.637 に答える