BigDecimalの基本的な使用法

1.加算、減算、乗算、除算

BigDecimal bignum1 = new BigDecimal(" 10 " );  
BigDecimal bignum2 = new BigDecimal(" 5 " );  
BigDecimal bignum3 = null ;  
  
// 加法   
bignum3 =   bignum1.add(bignum2);       
システム。out .println("和是" + bignum3);  
  
// 减法   
bignum3 = bignum1.subtract(bignum2);  
システム。out .println("差是" + bignum3);  
  
// 乗算   
bignum3 = bignum1.multiply(bignum2);   
システム。アウト .println(" 製品がある:" + bignum3);   
  
// 除算   
bignum3 = bignum1.divide(bignum2);   
[システム。OUTの .println(" 一覧は以下のとおりです。" + bignum3); 

// 分割(丸い) 
bignum3 = bignum1.divide(bignum2、2、BigDecimal.ROUND_HALF_UP)。  

 

格差を説明する

pubilc BigDecimal divide(BigDecimal divisor、int scale、RoundingMode roundingMode)

スケールは、小数点以下の桁数を指します。たとえば、123.456のスケールは3です。

RoundingModeは次のとおりです
。1. ROUND_UP
丸めモードはゼロから離れて丸められます。
ゼロ以外の部分を破棄する前に、必ず数値を増やしてください(ゼロ以外の破棄部分の前の数値に常に1を加えてください)。
この丸めモードは、計算された値のサイズを決して縮小しないことに注意してください。

2. ROUND_DOWN
がゼロに近い丸めモード。
部品を廃棄する前に数値を増加させないでください(廃棄された部品の前の数値に1を追加しないでください、つまり切り捨てます)
この丸めモードでは、計算値のサイズが増えることはありません。

3. ROUND_CEILING
は、正の無限大に近い丸めモードです。
BigDecimalが正の場合、丸め動作はROUND_UPと同じであり
、負の場合、丸め動作はROUND_DOWNと同じです。
この丸めモードでは、計算値が減ることはありません。

4. ROUND_FLOORは
、負の無限大の丸めモードに近い。
BigDecimalが正の場合、丸め動作はROUND_DOWNと同じであり
、負の場合、丸め動作はROUND_UPと同じです。
この丸めモードでは、計算値が増えることはありません。

5. ROUND_HALF_UP
は、「最も近い」数字に丸めます。2 つの隣接する数字までの距離が等しい場合、切り上げられます。
破棄された部分> = 0.5の場合、丸め動作はROUND_UPと同じであり、それ以外の場合、丸め動作はROUND_DOWNと同じです。
これは、ほとんどの人が小学校で学んだ丸めモード(丸め)であることに注意してください。

6. ROUND_HALF_DOWN
は、「最も近い」数字に丸めます。2つの隣接する数字までの距離が等しい場合、丸めモードは切り上げられます。
破棄された部分が0.5より大きい場合、丸め動作はROUND_UPと同じです。それ以外の場合、丸め動作はROUND_DOWN(5回)と同じです。

7. ROUND_HALF_EVEN(銀行の丸め方法)
は「最も近い」数値に丸め、2つの隣接する数値までの距離が等しい場合は、隣接する偶数に丸めます。
破棄された部分の左側の数が奇数の場合、丸め動作はROUND_HALF_UPと同じ
であり、偶数の場合、丸め動作はROUND_HALF_DOWNと同じです。
一連の計算を繰り返す場合、この丸めモードは累積エラーを最小化できることに注意してください。
この丸めモードは「銀行の丸め方法」とも呼ばれ、主に米国で使用されています。四捨五入、2つのケースで5ポイント。
前のビットが奇数の場合はビットが入力され、それ以外の場合は破棄されます。
次の例では小数点以下1桁が保持されているため、この丸め方法の結果になります。
1.15> 1.2 1.25> 1.2

8. ROUND_UNNECESSARY
は、要求された操作の結果が正確であることを表明しているため、丸めは必要ありません。
正確な結果を得る操作にこの丸めモードが指定されている場合、ArithmeticExceptionがスローされます。

 

次に、サイズを比較します

if(A.compareTo(B)==- 1 ){ 
    システム。out .println(" A小此B " ); 
} 
 
if(A.compareTo(B)== 0 ){ 
    システム。out .println(" A等に関してB " ); 
} 
 
if(A.compareTo(B)== 1 ){ 
    システム。out .println(" A大に関してB " ); 
} 
 
if(A.compareTo(B)>- 1 ){ 
    システム。out .println(" A大平等B " ); 
}
 
IF(a.compareTo(B)< 1。){ 
    システム。OUTの .println(" A以下B " ); 
}

 

第三に、小数を保持します

// 最初の方法で2つの小数
ダブル(DB = bigDecimalTwo.setScale 2 RoundingMode.HALF_UPとして、).doubleValue(); 
システム。OUT .println(DB); 
 
// 第二の方法の2つの小数点以下の桁数の 
のDecimalFormat df = new DecimalFormat(" #.00 " ); 
df.format(bigDecimalTwo);

(続く)

おすすめ

転載: www.cnblogs.com/hunttown/p/12714951.html