# 使用java.math.BigDecimal

public class BigDecimal
extends Number

BigDecimal 类使它的用户对舍入行为有完全的控制权，迫使用户显式地指定能够舍弃部分精度( (除法 和 setScale))的舍入操作的舍入行为。为达到该目的，该类提供了八个 舍入模式 。同时针对 BigDecimal 的精度操作提供了两种类型的操作：数值调整/舍入 (scaling/rounding)操作和小数点移动操作。Scaling/Rounding 操作 (SetScale) 返回一个 BigDecimal，其数值近似 (或精确) 等于操作数，其有效范围是指定的值；也就是说，它们以对数值产生最小影响的方式增加或减少精度。十进制小数点移动操作 (movePointLeft 和 movePointRight)返回一个 BigDecimal ，它是把操作数的小数点在指定方向移动一个指定距离产生的；这种操作可以改变一个数字的值但不影响它的精度。

public class BigDecimalextends Numberimplements Comparable Immutable, arbitrary-precision signed decimal numbers. A BigDecimal consists of an arbitrary precision integer unscaled value and a non-negative 32-bit integer scale, which represents the number of digits to the right of the decimal point. The number represented by the BigDecimal is (unscaledValue/10scale). BigDecimal provides operations for basic arithmetic, scale manipulation, comparison, hashing, and format conversion. The BigDecimal class gives its user complete control over rounding behavior, forcing the user to explicitly specify a rounding behavior for operations capable of discarding precision (divide(BigDecimal, int), divide(BigDecimal, int, int), and setScale(int, int)). Eight rounding modes are provided for this purpose. Two types of operations are provided for manipulating the scale of a BigDecimal: scaling/rounding operations and decimal point motion operations. Scaling/rounding operations (setScale) return a BigDecimal whose value is approximately (or exactly) equal to that of the operand, but whose scale is the specified value; that is, they increase or decrease the precision of the number with minimal effect on its value. Decimal point motion operations (movePointLeft(int) and movePointRight(int)) return a BigDecimal created from the operand by moving the decimal point a specified distance in the specified direction; that is, they change a number's value without affecting its precision. For the sake of brevity and clarity, pseudo-code is used throughout the descriptions of BigDecimal methods. The pseudo-code expression (i + j) is shorthand for "a BigDecimal whose value is that of the BigDecimal i plus that of the BigDecimal j." The pseudo-code expression (i == j) is shorthand for "true if and only if the BigDecimal i represents the same value as the the BigDecimal j." Other pseudo-code expressions are interpreted similarly. Note: care should be exercised if BigDecimals are to be used as keys in a SortedMap or elements in a SortedSet, as BigDecimal's natural ordering is inconsistent with equals. See Comparable, SortedMap or SortedSet for more information.

• 本文已收录于以下专栏：

## java.math.BigDecimal用法

• big1989wmf
• 2017年04月12日 16:34
• 570

## Java中的java.math.BigDecimal的使用

Java中的java.math.BigDecimal的使用： 1、请看这个例子 package net.nyist; public class BigDecimalDemo { ...
• ma451152002
• 2013年06月11日 18:45
• 9233

## java.lang.ClassCastException: java.math.BigDecimal错误

java.lang.ClassCastException: java.math.BigDecimal错误 要转换成Int类型的，不能直接转换，要写成 new BigDecimal(obj[2].t...
• wangjinwei6912
• 2012年02月16日 19:18
• 2573

## 关于 java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.String

• wdhhxbb
• 2017年05月04日 13:39
• 5286

## java.math.BigDecimal cannot be cast to java.lang.String解决方法

• aqsunkai
• 2016年05月13日 16:39
• 2081

## java.math.BigDecimal cannot be cast to [Ljava.lang.Object;

• u011972571
• 2014年07月16日 10:17
• 1389

## 【Java】 java.math.BigDecimal cannot be cast to java.lang.String

• kisscatforever
• 2017年10月01日 17:14
• 323

## 类型转换错误类似java.math.BigDecimal cannot be cast to java.lang.Double 解决办法

• justdoit_potato
• 2017年07月27日 11:36
• 1489

## ssh框架中 hibernate 的bean中 的java.math.BigDecimal 要改成 integer 或者 long

• honghuajun
• 2012年05月27日 20:50
• 8266

## java.math.BigDecimal

• Iamallblue
• 2015年01月16日 18:26
• 174

举报原因： 您举报文章：使用java.math.BigDecimal 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)