MySQL でサポートされている浮動小数点型は、 お金など、精度の高いものには、10 進数型を使用することをお勧めします。float や double はエラーが発生しやすいため、使用しないでください。numeric と 10 進数は同義であり、numeric は自動的に 10 進数に変換されます。 DECIMAL は MySQL 5.1 で導入されました。列宣言構文は DECIMAL(M,D) です。 MySQL 5.1 では、パラメータ値の範囲は次のとおりです。
注: float は 4 バイト、double は 8 バイト、decimail (M、D) は M+2 バイトを占有します。 たとえば、DECIMAL(5,2) の最大値は 7 バイト使用できるため 9999.99 です。 したがって、M と D は DECIMAL(M, D) の値の範囲に影響を与える重要な要素です。 タイプ 説明 値の範囲 (MySQL < 3.23) 値の範囲 (MySQL >= 3.23) DECIMAL(4,1) -9.9 ~ 99.9 -999.9 ~ 9999.9 DECIMAL(5,1) -99.9 ~ 999.9 -9999.9 ~ 99999.9 DECIMAL(6,1) -999.9 ~ 9999.9 -99999.9 ~ 999999.9 10進数(6,2) -99.99 ~ 999.99 -9999.99 ~ 99999.99 DECIMAL(6,3) -9.999 ~ 99.999 -999.999 ~ 9999.999 特定の DECIMAL 型の値の範囲は、MySQL データ型のバージョンによって異なります。 MySQL 3.23 より前のバージョンでは、DECIMAL(M, D) 列の各値は M バイトを占め、符号 (必要な場合) と小数点が M バイトに含まれます。したがって、DECIMAL(5, 2) 型の列は、すべての可能な 5 文字の値をカバーするため、-9.99 から 99.99 までの範囲の値を持つことができます。 # MySQL 3.23 以降では、DECIMAL(M, D) の値の範囲は、以前のバージョンの DECIMAL(M + 2, D) の値の範囲と同じです。 結論は:
JAVA+MySQL+JPA 実践 msyql-Decimalはjava-BigDecimalに対応します データテーブルの定義 @実在物 パブリッククラスTestEntityはModelを拡張します{ @Column(nullable = true、列定義 = "decimal(11,2)") 公開 BigDecimal 価格; } テスト結果と説明 /** * 1.mysql-Decimal(9+2,2)はjava-BigDecimalに対応する * 2. 整数部は 9 桁、小数部は 2 桁で、小数点は切り捨てられます。 * 3. 割り切れる部分が 9 桁の制限を超えると、エラーが報告されます。 * 4. 小数点以下の桁数が桁数を超える場合は、小数点以下2桁に切り捨てられます*/ TestEntity エンティティ = 新しい TestEntity(); entity.price = 新しい BigDecimal(Double.toString(123456789.12d)); エンティティを保存します。 // 整数が 9 桁を超えています。 エンティティ = 新しい TestEntity(); entity.price = 新しい BigDecimal(Double.toString(1234567891.123d)); エンティティを保存します。 */ エンティティ = 新しい TestEntity(); entity.price = 新しい BigDecimal(Double.toString(123456789.123d)); エンティティを保存します。 エンティティ = 新しい TestEntity(); entity.price = 新しい BigDecimal(Double.toString(123456789.126d)); エンティティを保存します。 エンティティ = 新しい TestEntity(); entity.price = 新しい BigDecimal(Double.toString(123456789d)); エンティティを保存します。 エンティティ = 新しい TestEntity(); entity.price = 新しい BigDecimal(Double.toString(123456.2355)); エンティティを保存します。 エンティティ = 新しい TestEntity(); entity.price = 新しい BigDecimal(Double.toString(123456.2356)); エンティティを保存します。 エンティティ = TestEntity.find("price = ?", 新しい BigDecimal(Double.toString(123456789.12d))).first(); System.out.println("クエリ結果:" + entity.id + ", " + entity.price); 結果を挿入
要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。 以下もご興味があるかもしれません:
|
<<: Linux で起動時にプログラムを自動的に実行させる最も簡単な方法
>>: JavaScript オブジェクトの組み込みオブジェクト、値型、参照型の説明
Nginx は、IP ベースの仮想ホスト構成、ポート ベースの仮想ホスト構成、ドメイン名ベースの仮想...
目次1. 範囲2. 関数の戻り値3. 関数のネスト4. 終了5. クロージャの実用的応用1. 内部変...
目次1. JSの特徴1.1 マルチパラダイム1.2 説明1.3 シングルスレッド1.4 ノンブロッキ...
目次前提条件RNはiOSに価値を渡す方法1: ネイティブに値を通常通り渡す方法2: コールバック関数...
目次概要方法1: params経由でパラメータを渡す方法2: クエリを通じてパラメータを渡す方法3:...
この記事はCentOS 7.3システム環境をベースに、MySQLとRedisのインストールと使用につ...
データベースのパフォーマンスに関する話面接では、「データベースにどのくらい精通していますか?」など、...
MySql は常に MySQLInstallerConsole.exe ウィンドウを定期的にポップア...
今日、null 値をテストしていたところ、小さな問題が見つかりました。ここに記録しました。以前にも遭...
1. 公式ウェブサイト www.mysql.com にアクセスし、ダウンロードを選択します。 2. ...
I. はじめにDockerテクノロジーは現在非常に人気があります。コンテナを介してプロジェクト環境を...
display:bolck/none によるメニューバーの完成の効果 図 1:まず、完成したエフェク...
序文単一障害点を解決するには、マスター/スレーブ ホット スタンバイ ソリューションを構成する必要が...
Linux オンラインインストール関連コマンド: yum install: すべてインストールyum...