現世代Javaの動向 1 at TECH
[2ch|▼Menu]
681:デフォルトの名無しさん
08/05/26 11:09:32
>>635
そのパフォーマンスを改善するために

BigDecimal.ZERO, BigDecimal.ONE, BigDecimal.TEN
というものが用意されているわけだが。

Factory MethodパターンやProxyパターンなどを使って一度newした値を
再利用することでパフォーマンスを改善することができるぞ。ZEROもONEもそれと同じ仕組みだ。
Number#valueOf()はみんなそういう仕組み。

ただし小数を引数にしてBigDecimal#valueOf(double)で型を生成するのは
10進2進変換誤差が生じるのでやはり
new BigDecimal(String, MathContext)をお勧めするが。

どうしてもパフォーマンスが気になるなら
よく使うと想定される数字は

final BigDecimal PI = 3.14 = new BigDecimal("3.14");
のようにあらかじめつくっておくといい。

Factory Methodを使うのもお勧め


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5495日前に更新/239 KB
担当:undef