use of java.math.RoundingMode in project robovm by robovm.
the class OldBigDecimalArithmeticTest method test_DivideBigDecimalRoundingExc.
/**
* java.math.BigDecimal#divide(java.math.BigDecimal,
* java.math.RoundingMode) divide(BigDecimal, RoundingMode)
*/
public void test_DivideBigDecimalRoundingExc() {
String a = "3736186567876876578956958765675671119238118911893939591735";
String b = "74723342238476237823787879183470";
RoundingMode rm = RoundingMode.UNNECESSARY;
BigDecimal aNumber = new BigDecimal(new BigInteger(a));
BigDecimal bNumber = new BigDecimal(new BigInteger(b));
try {
aNumber.divide(bNumber, rm);
fail("ArithmeticException is not thrown for RoundingMode.UNNECESSARY divider");
} catch (java.lang.ArithmeticException ae) {
// expected
}
try {
bNumber = new BigDecimal(0);
aNumber.divide(bNumber, rm);
fail("ArithmeticException is not thrown for zero divider");
} catch (java.lang.ArithmeticException ae) {
// expected
}
}
use of java.math.RoundingMode in project robovm by robovm.
the class OldBigDecimalArithmeticTest method test_DivideBigDecimalRoundingModeCEILING.
/**
* java.math.BigDecimal#divide(java.math.BigDecimal,
* java.math.RoundingMode) divide(BigDecimal, RoundingMode)
*/
public void test_DivideBigDecimalRoundingModeCEILING() {
String a = "3736186567876876578956958765675671119238118911893939591735";
String b = "74723342238476237823787879183470";
RoundingMode rm = RoundingMode.CEILING;
String c = "50000260373164286401361914";
BigDecimal aNumber = new BigDecimal(new BigInteger(a));
BigDecimal bNumber = new BigDecimal(new BigInteger(b));
BigDecimal result = aNumber.divide(bNumber, rm);
assertEquals("incorrect value", c, result.toString());
}
use of java.math.RoundingMode in project robovm by robovm.
the class BigDecimalArithmeticTest method testDivideBigDecimalScaleRoundingModeHALF_DOWN.
/**
* divide(BigDecimal, scale, RoundingMode)
*/
public void testDivideBigDecimalScaleRoundingModeHALF_DOWN() {
String a = "3736186567876876578956958765675671119238118911893939591735";
int aScale = 5;
String b = "74723342238476237823787879183470";
int bScale = 15;
int newScale = 7;
RoundingMode rm = RoundingMode.HALF_DOWN;
String c = "500002603731642864013619132621009722.1803810";
BigDecimal aNumber = new BigDecimal(new BigInteger(a), aScale);
BigDecimal bNumber = new BigDecimal(new BigInteger(b), bScale);
BigDecimal result = aNumber.divide(bNumber, newScale, rm);
assertEquals("incorrect value", c, result.toString());
assertEquals("incorrect scale", newScale, result.scale());
}
use of java.math.RoundingMode in project robovm by robovm.
the class BigDecimalArithmeticTest method testDivideBigDecimalScaleMathContextHALF_EVEN.
/**
* divide(BigDecimal, MathContext)
*/
public void testDivideBigDecimalScaleMathContextHALF_EVEN() {
String a = "3736186567876876578956958765675671119238118911893939591735";
int aScale = 45;
String b = "134432345432345748766876876723342238476237823787879183470";
int bScale = 70;
int precision = 21;
RoundingMode rm = RoundingMode.HALF_EVEN;
MathContext mc = new MathContext(precision, rm);
String c = "2.77923185514690367475E+26";
int resScale = -6;
BigDecimal aNumber = new BigDecimal(new BigInteger(a), aScale);
BigDecimal bNumber = new BigDecimal(new BigInteger(b), bScale);
BigDecimal result = aNumber.divide(bNumber, mc);
assertEquals("incorrect value", c, result.toString());
assertEquals("incorrect scale", resScale, result.scale());
}
use of java.math.RoundingMode in project robovm by robovm.
the class BigDecimalArithmeticTest method testDivideBigDecimalScaleRoundingModeHALF_UP.
/**
* divide(BigDecimal, scale, RoundingMode)
*/
public void testDivideBigDecimalScaleRoundingModeHALF_UP() {
String a = "3736186567876876578956958765675671119238118911893939591735";
int aScale = -51;
String b = "74723342238476237823787879183470";
int bScale = 45;
int newScale = 3;
RoundingMode rm = RoundingMode.HALF_UP;
String c = "50000260373164286401361913262100972218038099522752460421" + "05959924024355721031761947728703598332749334086415670525" + "3761096961.670";
BigDecimal aNumber = new BigDecimal(new BigInteger(a), aScale);
BigDecimal bNumber = new BigDecimal(new BigInteger(b), bScale);
BigDecimal result = aNumber.divide(bNumber, newScale, rm);
assertEquals("incorrect value", c, result.toString());
assertEquals("incorrect scale", newScale, result.scale());
}
Aggregations