MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLに数値をDECIMAL型(10進数)として保存・フォーマットする方法

MySQLで数値を10進数として扱うには?

MySQLでは、数値をわざわざ文字列としてフォーマットして保存する必要はありません。DECIMALデータ型を使えば、小数点以下の桁数を指定した正確な10進数としてそのまま格納できます。

例えば DECIMAL(10,2) と定義すると、整数部分が最大8桁、小数部分が2桁の数値を保存できます。小数第3位以下の値は自動的に丸められます。

1. テーブルを作成する

まず、DECIMAL型のカラムを持つテーブルを作成しましょう。

mysql> create table DemoTable1330
    -> (
    -> Amount DECIMAL(10,2)
    -> );
Query OK, 0 rows affected (0.85 sec)

2. レコードを挿入する

次に、INSERT文を使ってテーブルにレコードを追加します。

mysql> insert into DemoTable1330 values(10944.7893);
Query OK, 1 row affected, 1 warning (0.13 sec)
mysql> insert into DemoTable1330 values(9848.44);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1330 values(8009.90);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable1330 values(1000.99);
Query OK, 1 row affected (0.13 sec)

最初のレコード「10944.7893」は小数点以下が4桁あるため、DECIMAL(10,2) の定義に従って挿入時に丸められます(このとき警告が発生しています)。

3. データを確認する

SELECT文ですべてのレコードを表示してみましょう。

mysql> select * from DemoTable1330;

実行結果は以下のようになります。

+----------+
| Amount   |
+----------+
| 10944.79 |
| 9848.44  |
| 8009.90  |
| 1000.99  |
+----------+
4 rows in set (0.00 sec)

まとめ

このように、MySQLではDECIMAL型を使用することで、金額など正確な10進数の計算が必要なデータを丸め誤差なしに保存できます。FLOAT型やDOUBLE型では浮動小数点演算の性質上、誤差が発生する可能性があるため、金額データには必ずDECIMAL型を使用することをおすすめします。

  1. JSPでパーセント(%)をフォーマットする方法:fmt:formatNumberタグの使い方

    JSTLの<fmt:formatNumber>タグを使用すると、数値・パーセント・通貨を簡単にフォーマットして表示できます。この記事では、パーセント形式での表示に焦点を当て、タグの主な属性と具体的な使用例をわかりやすく解説します。 主な属性一覧 <fmt:formatNumber>タグには、以下の属性が用意されています。 属性説明必須デフォルト値 value表示する数値はいなし typeNUMBER(数値)、CURRENCY(通貨)、PERCENT(パーセント)のいずれかいいえnumber pattern出力形式を指定するカスタム書式パターンいいえなし curr

  2. JSPで数値をフォーマットする方法|fmt:formatNumberタグの使い方を解説

    JSTL(JSP Standard Tag Library)の<fmt:formatNumber>タグは、数値・パーセント・通貨などを指定した形式で整形して表示するために使用します。金額の桁区切りや小数点以下の桁数制御など、Webアプリケーションの画面表示に欠かせないフォーマット処理を、スクリプトレットを書かずに簡単に実現できるのが特徴です。 fmt:formatNumberタグの主な属性 <fmt:formatNumber>タグには、以下の属性が用意されています。 属性説明必須デフォルト値 value表示する数値はいなし typeNUMBER(数値)、CURR