|
|
|
JAVA程序员必读:基础篇(4)对象和简单数据对象
|
|
编译:ZSC/太平洋网络学院
|
|
|
对象和简单数据对象
4.3 数字
8. BigDecimal:不可变的、任意精度的有符号的十进制数字。BigDecimal包含了任意精度的整型数和非负的32位的整型数,BigDecimal
提供了用于基本算术运算、比较、格式转换等等的操作。这个BigDecimal类给了用户对舍入行为的完全控制,并且强迫用户为舍弃精度的操作显性指定一个舍入行为。基于这个目的有八种舍入模式。对BigDecimal有两种类型的操作:比例/舍入操作和十进制点移动操作。比例/舍入操作返回一个BigDecimal,它的数值大约或者精确地等于运算对象,但是它的数值范围要指定,也就是说,它们可以对它的数值最小的影响来增加或者减少数字的精度。十进制点移动操作(movePointLeft和movePointRight)返回一个由运算对象创建的BigDecima,它是通过在指定方向和指定距离来移动十进制点的。为了达到简短和清晰的目的,伪代码用在了BigDecimal方法的描述中。比如伪代码表达式(i
j)就代表了“BigDecimal的数值是由BigDecimal i加上BigDecimal j的数值”。而伪代码表达式(i==j)代表“当且仅当BigDecimal
i的数值与BigDecimal j相同的时候才为true”。其它的伪代码表达式也有类似的解释。
BigInteger:不可变任意精度的整型数。BigInteger为所有的Java原始整型操作以及所有在java.lang.Math中的相关方法提供相似的操作。另外BigInteger伪模数运算、GCD计算、位操作等等提供了运算。算术运算的语义模仿了定义在JAVA语言规范中的Java的整型算术运算。比如,如果除数为0就会导致ArithmeticException(算术异常)等等。所有在规范中的溢出都将被忽略,因为BigIntegers将尽量适应运算结果的需要。
而移位操作扩展了Java的移位操作,它允许负方向的移位。以负的位距来往右移就相当于往左移位。而无符号的右移运算符(>>>)这里就不再使用。
而按位逻辑操作跟Java的按位操作是相似的。比较运算执行有符号的整型比较,它跟Java的是相似的。 模数算术运算提供计算余数、执行乘幂等方法。这些方法总是返回一个非零的结果(介于0到-1之间)。为了简洁和清晰的目的,伪代码也用在BigInteger方法中。这个伪代码表达式(i
j)代表了“等于BigInteger i加上BigInteger j的BigInteger数值”。而伪代码表达式(i==j)代表了“当且仅当BigInteger
i等于BigInteger j的时候才返回true”。
[上一页]
[下一页]
|
|
|