2016-12-13 10 views
0

ここでは、10%の返品率を期待していますが、9.9という結果になると見込んでいます。どのように丸めるのですか?Java計算でbigdecimalを使用して3〜100で割り算

import java.math.BigDecimal; 
import java.math.MathContext; 
import java.math.RoundingMode; 


public class Test { 


    public static final int AMOUNT_SCALE = 2; 
    public static final int PRECISION_SIX = 6; 
    private static BigDecimal tmp = new BigDecimal("100"); 
    public static final BigDecimal ONE_HUNDRED = tmp.setScale(0, RoundingMode.DOWN); 
    public static final MathContext MATH_CONTEXT = new MathContext(PRECISION_SIX, RoundingMode.HALF_UP); 

    public static void main(String [] args){ 
     System.out.println(multiplyTwoNumbersAndDivideByOneHundredAmount(new BigDecimal(30), new BigDecimal(33.33))); ; 
    } 

    public static BigDecimal multiplyTwoNumbersAndDivideByOneHundredAmount(BigDecimal firstNumber, BigDecimal secondNumber) { 
     return (firstNumber.multiply(secondNumber)).divide(ONE_HUNDRED,MATH_CONTEXT).setScale(AMOUNT_SCALE,RoundingMode.DOWN); 
    } 
} 
+1

は、RoundingMode.DOWNのためのドキュメントを参照してくださいください。 – rajah9

+0

さて、丸めて、明示的に...あなたが使っている 'RoundingMode'を変更することを考えてみました。 –

答えて

1
.setScale(0, RoundingMode.HALF_UP); 

あなたが探しているものです。

0

はBigIntegerのオブジェクトを介して結果を渡します

BigInteger bi = new BigInteger(tmp); 
関連する問題