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型を使用することをおすすめします。
-
JSPでパーセント(%)をフォーマットする方法:fmt:formatNumberタグの使い方
JSTLの<fmt:formatNumber>タグを使用すると、数値・パーセント・通貨を簡単にフォーマットして表示できます。この記事では、パーセント形式での表示に焦点を当て、タグの主な属性と具体的な使用例をわかりやすく解説します。 主な属性一覧 <fmt:formatNumber>タグには、以下の属性が用意されています。 属性説明必須デフォルト値 value表示する数値はいなし typeNUMBER(数値)、CURRENCY(通貨)、PERCENT(パーセント)のいずれかいいえnumber pattern出力形式を指定するカスタム書式パターンいいえなし curr
-
JSPで数値をフォーマットする方法|fmt:formatNumberタグの使い方を解説
JSTL(JSP Standard Tag Library)の<fmt:formatNumber>タグは、数値・パーセント・通貨などを指定した形式で整形して表示するために使用します。金額の桁区切りや小数点以下の桁数制御など、Webアプリケーションの画面表示に欠かせないフォーマット処理を、スクリプトレットを書かずに簡単に実現できるのが特徴です。 fmt:formatNumberタグの主な属性 <fmt:formatNumber>タグには、以下の属性が用意されています。 属性説明必須デフォルト値 value表示する数値はいなし typeNUMBER(数値)、CURR