Javaで金銭的価値を計算する方法
金銭的価値は、通常、金融または電子商取引アプリケーションでプログラムされます。 「金額」の値を扱うときには常に疑問があります。 – 金額を表現するために
double`や
float`データ型を使うべきですか?
1.金額 – ダブル
次に、Javaで金額を表すためにdoubleを使用する例を示します。
MoneyDouble.java
package com.mkyong.test; public class MoneyDouble { public static void main(String[]argv) { System.out.println("--- Normal Print-----"); System.out.println(2.00 - 1.1); System.out.println(2.00 - 1.2); System.out.println(2.00 - 1.3); System.out.println(2.00 - 1.4); System.out.println(2.00 - 1.5); System.out.println(2.00 - 1.6); System.out.println(2.00 - 1.7); System.out.println(2.00 - 1.8); System.out.println(2.00 - 1.9); System.out.println(2.00 - 2); } }
出力 – すべての二重小数点を正確に計算することはできません。
--- Normal Print----- 0.8999999999999999 0.8 0.7 0.6000000000000001 0.5 0.3999999999999999 0.30000000000000004 0.19999999999999996 0.10000000000000009 0.0
2.金額 – BigDecimal
上の小数点の問題を避けるために、 `BigDecimal`を使って
金銭的価値
MoneyBigDecimal.java
パッケージcom.mkyong.test; import java.math.BigDecimal; パブリッククラスMoneyBigDecimal { public static void main(String[]argv){ System.out.println( "--- BigDecimal -----"); System.out.println(new BigDecimal( "2.00")。subtract(new BigDecimal( "1.1"))); System.out.println(new BigDecimal( "2.00")。subtract(new BigDecimal( "1.2"))); System.out.println(新しいBigDecimal( "2.00")。subtract(新しいBigDecimal( "1.3"))); System.out.println(新しいBigDecimal( "2.00")。subtract(新しいBigDecimal( "1.4"))); System.out.println(新しいBigDecimal( "2.00")。subtract(新しいBigDecimal( "1.5"))); System.out.println(new BigDecimal( "2.00")。subtract(new BigDecimal( "1.6"))); System.out.println(新しいBigDecimal( "2.00")。subtract(新しいBigDecimal( "1.7"))); System.out.println(new BigDecimal( "2.00")。subtract(new BigDecimal( "1.8"))); System.out.println(new BigDecimal( "2.00")。subtract(新しいBigDecimal( "1.9"))); System.out.println(new BigDecimal( "2.00")。subtract(new BigDecimal( "2"))); } }
出力 – BigDecimalは、正確な10進演算を実行します。
--- BigDecimal----- 0.90 0.80 0.70 0.60 0.50 0.40 0.30 0.20 0.10 0.00
-
Note ** BigDecimalの計算は、ミシシッピクリティカルな計算アプリケーションの問題となるプリミティブ型の計算よりも遅くなります。ほとんどの電子商取引アプリケーションでは、それはうまくいくはずです。
参考文献
JavaDoc]。
http://www.opentaps.org/docs/index.php/How
to
Use
Java
BigDecimal:
A
Tutorial[How
Java BigDecimalを使用する]
bigdecimal
double
リンク://タグ/java/[java]
money