次の条件が与えられます。
- 2 つの BigDecimal 値: b1とb2。
- x - 整数。
- b1 > b2 ;
私は見つける必要があります
となるxの最小値
b2 * x > b1
たとえば、すべての値が整数の場合:
if ( b1%b2 == 0 ) {
x = b1/b2;
} else {
x = b1/b2 +1;
}
次の条件が与えられます。
私は見つける必要があります
となるxの最小値
b2 * x > b1
たとえば、すべての値が整数の場合:
if ( b1%b2 == 0 ) {
x = b1/b2;
} else {
x = b1/b2 +1;
}
あなたが使うことができます
BigInteger x = b1.divide(b2, 0, RoundingMode.CEILING).toBigInteger()
BigDecimalクラスのAPIをご覧ください。add(BigDecimal)
基本演算子ごとに1つずつ、のような名前のメソッドがあります。これらの方法を使用してください。
例えば:
if(b1.divide(b2).equals(BigDecimal.ZERO))
試す:
BigDecimal bd1= .....;
BigDecimal bd2= .....;
BigDecimal tmp = bd2;
int x = 0;
while(tmp.compareTo(bd1) < 1){
x++;
tmp = bd2.multiply(new BigDecimal(x));
}
System.out.println("!!!!!!!!!!! " + x);
このようなもの?
BigDecimal b1 = new BigDecimal(41);
BigDecimal b2 = new BigDecimal(10);
BigDecimal xBigDec;
BigInteger xBig;
int x;
if(BigDecimal.ZERO.equals(b2)){
if(BigDecimal.ZERO.compareTo(b2)>0){
x = 0;
}else{
//Can't do!
}
}else{
xBigDec = b1.divide(b2);
xBig = (xBigDec).toBigInteger();
//you need to expand for negatives here
if(xBig.compareTo(BigInteger.valueOf(Integer.MAX_VALUE))>0){
x = Integer.MAX_VALUE;
}else{
x = xBig.intValue();
if(b2.multiply(new BigDecimal(x)).equals(b1)){
x++;
}
}
}