# BigDecimalUtils

## General

Category
Free
Tag
Utils
Registered
Jan 10, 2016
Favorites
0
https://github.com/joielechong/BigDecimalUtils
Apache Commons Codec
Enroscar
Android Utils
Android Util
AirCon

Language
Java
Version
N/A
Created
Jan 8, 2016
Updated
May 25, 2016 (Retired)
Owner
Joielechong (joielechong)
Contributor
1
Activity
Generate
Source code

# BigDecimalUtils

A Small BigDecimal Comparison and Calculation Utility for Java and Android.

Much of the comparison code (if not all) are heavily taken from Representing money.

## Why

We need to work with BigDecimal when working with monetary value because double or float are not recommended since they always carry small rounding differences.

So we need to make comparison and calculation of BigDecimal.

We can use compareTo method for comparison, but it too error prone and lacks readability.

Furthermore, doing calculation with BigDecimal is so unnatural.

## How It Work

• Import library to your code:
` import static com.github.joielechong.BigDecimalUtils.*;`
• Doing comparison:
```    if(is(income).lt(amount)) {
// ....
}else {
// ...
}```
• Do calculation:
`    remain = calculate(income).min(expense);`

## Other methods currently in this library

```      is(bigdecimal).eq(four);    // Equal
is(bigdecimal).gt(two);     // Greater than
is(bigdecimal).gteq(one);   // Greater than equal
is(bigdecimal).lt(two);     // Less than
is(bigdecimal).lteq(two);   // Less than equal

calculate(bigdecimal).min(bigdecimal)   // subtraction
calculate(bigdecimal).div(bigdecimal)   // division```

Currently comparison support only String and BigDecimal:

```      is(bigdecimal).eq(bigdecimal);    // BigDecimal and BigDecimal
is(bigdecimal).eq("1000");        // BigDecimal and String
is("1000").lt("2000");            // String and String
is("1000").lt(bigdecimal);        // String and BigDecimal```

Calculation support some of int, long, float, and BigDecimal (please check the library):

```      calculate(bigdecimal).min("500")  // String and String
calculate("1000").min("500")      // String and String
calculate(100).min("500")         // int and String
calculate(1l).min("500")          // long and String```

#Todo Add robust check for numeric string input.

#Credits

Hirondelle Systems | www.javapractices.com

``````Copyright 2016 Joielechong, Rilixtech.