2016-04-29 14 views
1

MySQLでこの問題が何度も発生しました!私はこのタイプ置く何度もこの問題が発生しました

DECIMAL(10,8)

最大値許可は、次のとおりです。99.99999999

次のようになっています。9999999999.99999999

ポイント(。)の後に8桁の小数点以下の最大値が必要です。 documentationから

答えて

2

DECIMAL列の宣言構文はDECIMAL(M、D)です。 MySQL 5.7の引数の値の範囲は、次のとおりです。

  • Mは最大桁数(精度)です。範囲は1〜65です。
  • Dは、小数点以下の桁数(位取り)です。これは、0〜30の範囲を有し、第1の値は、小数点の左側の桁数が、桁数の合計ではないM.

より大きくてはなりません。

これは、値9999999999.99999999DECIMAL(10, 8)を使用できないため、18桁の長さです。

+0

コメントと精度について最初に感謝し、問題を解決する方法を教えてください。解決策は何ですか? –

+0

小数点の右側に8桁の精度が必要な場合は、Dは8以上でなければなりません。次に、処理する必要がある最大値を計算し、それに従ってMを計算する必要があります。 'DECIMAL(18,8)'は例えば '9999999999.99999999'を正しく扱うことができます。 'float'型を使うことも良い解決策かもしれません。 – julienc

+0

これは明らかです、ありがとうございます! –

0

最初の数字は数字の合計で、2番目の数字は小数点以下の桁数です。

ご希望の番号については、DECIMAL(18,8)をお試しください。

1

指定方法はDECIMAL(x,y)です。xは小数点以下の桁数を表し、yは小数点以下を表します。

10.8は、NN.NNNNNNNNを意味する。

さらに必要に応じて、範囲を大きくする必要があります。

2

decimalは、2つのパラメータによって定義される - DECIMAL(M, D)Mは桁数の合計であり、DMのうち小数点の桁数です。数字9999999999.99999999を正しく表すには、DECIMAL(18, 8)を使用する必要があります。

0

DECIMAL(総数、小数点以下の桁数)を定義しますので、10進数の合計は、ほとんどの数値を左右に使用する場合は、合計位置の位置を使用してください。

関連する問題