Search in sources :

Example 11 with RoundingMode

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
    }
}
Also used : RoundingMode(java.math.RoundingMode) BigInteger(java.math.BigInteger) BigDecimal(java.math.BigDecimal)

Example 12 with RoundingMode

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());
}
Also used : RoundingMode(java.math.RoundingMode) BigInteger(java.math.BigInteger) BigDecimal(java.math.BigDecimal)

Example 13 with RoundingMode

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());
}
Also used : RoundingMode(java.math.RoundingMode) BigInteger(java.math.BigInteger) BigDecimal(java.math.BigDecimal)

Example 14 with RoundingMode

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());
}
Also used : RoundingMode(java.math.RoundingMode) BigInteger(java.math.BigInteger) MathContext(java.math.MathContext) BigDecimal(java.math.BigDecimal)

Example 15 with RoundingMode

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());
}
Also used : RoundingMode(java.math.RoundingMode) BigInteger(java.math.BigInteger) BigDecimal(java.math.BigDecimal)

Aggregations

RoundingMode (java.math.RoundingMode)254 BigDecimal (java.math.BigDecimal)139 BigInteger (java.math.BigInteger)88 MathContext (java.math.MathContext)86 GwtIncompatible (com.google.common.annotations.GwtIncompatible)39 Test (org.testng.annotations.Test)13 NumberFormat (java.text.NumberFormat)10 MonetaryOperator (javax.money.MonetaryOperator)8 DecimalFormat (java.text.DecimalFormat)6 IDataMap (permafrost.tundra.data.IDataMap)5 Test (org.junit.Test)3 MifosConfigurationManager (org.mifos.config.business.MifosConfigurationManager)3 GridBagConstraints (java.awt.GridBagConstraints)2 GridBagLayout (java.awt.GridBagLayout)2 Insets (java.awt.Insets)2 ActionEvent (java.awt.event.ActionEvent)2 ActionListener (java.awt.event.ActionListener)2 MonetaryContext (javax.money.MonetaryContext)2 ButtonGroup (javax.swing.ButtonGroup)2 JLabel (javax.swing.JLabel)2