# Package java.math

Provides classes for performing arbitrary-precision integer arithmetic (`BigInteger`) and arbitrary-precision decimal arithmetic (`BigDecimal`).

See: Description

- Class Summary
  Class | Description
  --- | ---
  BigDecimal | Immutable, arbitrary-precision signed decimal numbers.
  BigInteger | Immutable arbitrary-precision integers.
  MathContext | Immutable objects which encapsulate the context settings which describe certain rules for numerical operators, such as those implemented by the `BigDecimal` class.

- Enum Summary
  Enum | Description
  --- | ---
  RoundingMode | Specifies a rounding behavior for numerical operations capable of discarding precision.

## Package java.math Description

Provides classes for performing arbitrary-precision integer arithmetic (`BigInteger`) and arbitrary-precision decimal arithmetic (`BigDecimal`). `BigInteger` is analogous to the primitive integer types except that it provides arbitrary precision, hence operations on `BigInteger`s do not overflow or lose precision. In addition to standard arithmetic operations, `BigInteger` provides modular arithmetic, GCD calculation, primality testing, prime generation, bit manipulation, and a few other miscellaneous operations. `BigDecimal` provides arbitrary-precision signed decimal numbers suitable for currency calculations and the like. `BigDecimal` gives the user complete control over rounding behavior, allowing the user to choose from a comprehensive set of eight rounding modes.

Since:
  JDK1.1

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2017, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.