1

こんにちは。のデータ型と混同していMySQLます。

私はdecimal、ビジネスアプリケーションで正確さを得るために最も安全な方法であるように見えます。ただし、フィールドが返されると999999999.99、データ型が DECIMAL(10,2) である の値があることがわかりました。したがって、実際の値はパラメーターの外側にオーバーフローしてい(10, 2)ます。

カンマの前に 10 桁、カンマの後に 2 桁指定していますが、正しいでしょうか。MySQLはまだ完全な数を保存していますか?

また、カンマ前後の最大表示桁数をオフにすることは可能でしょうか?

4

1 に答える 1

1

カンマの前に 10 桁、カンマの後に 2 桁指定していますが、正しいでしょうか。MySQLはまだ完全な数を保存していますか?

いいえ、そうではありません。

最初に、全部で 10 桁を指定しました。2 は小数点の右側、8 は左側です。

標準 SQL では、DECIMAL(5,2) が 5 桁と 2 桁の小数点以下の値を格納できる必要があるため、salary 列に格納できる値の範囲は -999.99 ~ 999.99 です。

第 2 に、MySQL は、最下位桁が 2 桁を超える場合、サイレントにスケールに変換します。これはおそらく MySQL の切り捨てのように見えますが、実際の動作はプラットフォームに依存します。最上位桁数が多すぎると、エラーが発生します。

最後に、データベースを操作している場合、表示される桁数はデータ型や格納する値の範囲とはほとんど関係ありません。

于 2013-04-20T13:48:06.987 に答える