JavaでBigDecimal型をint型に変換する方法
JavaでBigDecimal型をint型に変換するにはintValueメソッドを使います。
BigDecimal bd = new BigDecimal("10"); int i = bd.intValue();
逆にint型をBigDecimal型に変換するにはvalueOfメソッドを使います。
int i = 10; BigDecimal bd = BigDecimal.valueOf(i);
new BigDecimalをするよりvalueOfを勧めます。valueOfの中でキャッシュするようになっているので、かならずインスタンス生成されるわけではありません。
それに対してnew BigDecimalは必ずインスタンス生成されます。細かいところですが、Javaはメモリ意識しないといけませんね。
参考ページです。
会計はBigDecimal型を使用する
会計のシステムでは普通BigDecimalを使用します。
ただ、このBigDecimalもインスタンス生成方法によっては循環小数になったりするので注意です。
コンストラクタにdouble型を渡して割り算してみます。
BigDecimal bd1 = new BigDecimal(1058.1); BigDecimal bd2 = new BigDecimal(10); System.out.println(bd1.divide(bd2)); // 105.809999999999990905052982270717620849609375
これはBigDecimalのコンストラクタに以下が用意されているからです。
public BigDecimal(double val) { this(val,MathContext.UNLIMITED); }
ということでBigDecimalのインスタンス生成時の引数はダブルクォーテーションで囲みましょう。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント