使用java.math.BigDecimal

原创 2005年05月27日 15:47:00
public class BigDecimal
extends Number

不可变的、任意精度的带符号的十进制数。 一个 BigDecimal 由一个任意精度的整数值和一个非负的整数标度组成,整数标度代表小数点右边的十进制数字的个数(用 BigDecimal 表示的数值大小是 intVal/10**scale)。 BigDecimals 提供基本的算术操作、精度处理、比较、格式转换和散列。

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、Random、System、BigInteger、BigDecimal、Date/DateFormat、Calendar类的使用

1:正则表达式(理解) (1)就是符合一定规则的字符串 (2)常见规则 A:字符 x 字符 x。举例:'a'表示字符a \\ 反斜线字符。 \n 新行(换行)符 ('\u000A')  ...

JavaSE—java.math.BigDecimal中的setSCale函数的使用

1. setScale(int number)2.setScale(int number, int round)根据round的值的不同,会有不同的“四舍五入”的取舍规则。 round取值:(Big...

java.math.BigDecimal类

为什么浮点数不能直接比较大小?  相信大家都了解过在java中1.8-0.8的结果不是我们所期望的0.2,而是0.19999999999999996.可是有人去想过这是什么原因吗.   那好,我们一...

Java基础 - 正则,Math,Random,System,Date,SimpleDateFormat,Calendar,BigInteger,BigDecimal

Java基础 - 正则,Math,Random,System,Date,SimpleDateFormat,Calendar,BigInteger,BigDecimal...

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

从oracle数据库中的integer字段通过hibernate的反向工程,生成的bean字段为java.math.BigDecimal类型。 但是struts2框架中的xworks对从jsp页面穿...

java.math.BigDecimal类的用法

在java中提供了大数字的操作类,即java.math.BinInteger类和java.math.BigDecimal类。这两个类用于高精度计 算,其中BigInteger类是针对大整数的处理类,而...

Java常用类-Math、BigInteger、BigDecimal

Math类 java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型。 abs     绝对值 acos,asin,atan,cos,sin...

Java.math.BigDecimal类

java.math.BigDecimal 类提供用于算术,刻度操作,舍入,比较,哈希算法和格式转换操作。 toString()方法提供BigDecimal的规范表示。它使用户可以完全控制舍入行为...

11. JAVA常用类库 Part 3 (Math类、Random类、NumberFormat类、BigInteger类和BigDecimal类) ----- 学习笔记

 11.6 Math类         Math类是数学操作类,提供了一些列的数学操作方法,包括求绝对值、三角函数等等,在Math类中提供的一切方法都是静态方法,所以直接由类名名称调用即可,下...

java.math.BigDecimal的用法

Java中的简单浮点数类型float和double不能够进行运算。不光是Java,在其它很多编程语言中也有这样的问题。 如果我们编译运行下面这个程序会看到什么?public   class  Test...
  • kjfcpua
  • kjfcpua
  • 2011年05月04日 09:53
  • 448
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用java.math.BigDecimal
举报原因:
原因补充:

(最多只允许输入30个字)