MySQLでこの問題が何度も発生しました!私はこのタイプ置く何度もこの問題が発生しました
:DECIMAL(10,8)
最大値許可は、次のとおりです。99.99999999
!
次のようになっています。9999999999.99999999
?
ポイント(。)の後に8桁の小数点以下の最大値が必要です。 documentationから
MySQLでこの問題が何度も発生しました!私はこのタイプ置く何度もこの問題が発生しました
:DECIMAL(10,8)
最大値許可は、次のとおりです。99.99999999
!
次のようになっています。9999999999.99999999
?
ポイント(。)の後に8桁の小数点以下の最大値が必要です。 documentationから
:
DECIMAL列の宣言構文はDECIMAL(M、D)です。 MySQL 5.7の引数の値の範囲は、次のとおりです。
- Mは最大桁数(精度)です。範囲は1〜65です。
- Dは、小数点以下の桁数(位取り)です。これは、0〜30の範囲を有し、第1の値は、小数点の左側の桁数が、桁数の合計ではないM.
より大きくてはなりません。
これは、値9999999999.99999999
とDECIMAL(10, 8)
を使用できないため、18桁の長さです。
最初の数字は数字の合計で、2番目の数字は小数点以下の桁数です。
ご希望の番号については、DECIMAL(18,8)
をお試しください。
指定方法はDECIMAL(x,y)
です。x
は小数点以下の桁数を表し、y
は小数点以下を表します。
10.8は、NN.NNNNNNNNを意味する。
さらに必要に応じて、範囲を大きくする必要があります。
decimal
は、2つのパラメータによって定義される - DECIMAL(M, D)
、M
は桁数の合計であり、D
はM
のうち小数点の桁数です。数字9999999999.99999999
を正しく表すには、DECIMAL(18, 8)
を使用する必要があります。
DECIMAL(総数、小数点以下の桁数)を定義しますので、10進数の合計は、ほとんどの数値を左右に使用する場合は、合計位置の位置を使用してください。
コメントと精度について最初に感謝し、問題を解決する方法を教えてください。解決策は何ですか? –
小数点の右側に8桁の精度が必要な場合は、Dは8以上でなければなりません。次に、処理する必要がある最大値を計算し、それに従ってMを計算する必要があります。 'DECIMAL(18,8)'は例えば '9999999999.99999999'を正しく扱うことができます。 'float'型を使うことも良い解決策かもしれません。 – julienc
これは明らかです、ありがとうございます! –