Syntax
new BigDecimal("2.345").setScale(2, RoundingMode.HALF_UP)Examples
BigDecimal and Explicit Rounding
Save as Main.java and run with a Java 17+ JDK: java Main.java.
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) throws Exception {
BigDecimal price = new BigDecimal("2.345");
System.out.println(price.setScale(2, RoundingMode.HALF_UP));
System.out.println(new BigDecimal("1.0").compareTo(new BigDecimal("1.00")) == 0);
}
}- Expected output: 2.35 true
- setScale returns a rounded value without mutating price. compareTo compares numeric value; equals also considers scale.
Best practices
- Construct from decimal strings, not approximate double values.
- State rounding and equality policies at application boundaries.
Runtime & versions
Java Virtual Machine. Feature availability depends on the language and runtime version used by your project; consult the official reference below.
Java Language Specification