1、BigDecimal继承接口以及实现类
public class BigDecimal
extends Number
implements Comparable<BigDecimal>
2、对于scale的理解
19/100 = 0.19 // integer=19, scale=2
但是21/110 = 0.190 // integer=190, scale=3
3、private final BigInteger intVal;的作用
定义了Integer,见第二个问题
Final关键字的理解(链接):final
4、private final int scale;的作用
定义标度
5、private transient int precision;的作用
定义精度
Transient的链接:transient
6、BigDecimal的构造方法
主要就是将各种类型的数字转换成BigDecimal类型
| BigDecimal(BigInteger val) |
| BigDecimal(BigInteger unscaledVal, int scale) |
| BigDecimal(BigInteger unscaledVal, int scale, MathContext mc) |
| BigDecimal(BigInteger val, MathContext mc) |
| BigDecimal(char[] in) |
| BigDecimal(char[] in, int offset, int len) |
| BigDecimal(char[] in, int offset, int len, MathContext mc) |
| BigDecimal(char[] in, MathContext mc) |
| BigDecimal(double val) |
| BigDecimal(double val, MathContext mc) |
| BigDecimal(int val) |
| BigDecimal(int val, MathContext mc) |
| BigDecimal(long val) |
| BigDecimal(long val, MathContext mc) |
| BigDecimal(String val) |
| BigDecimal(String val, MathContext mc) |
7、abs() 方法的作用
返回 BigDecimal,其值为此 BigDecimal 的绝对值,其标度为 this.scale()。
| public BigDecimal abs() { signum涉及到移位运算。 |
8、add(BigDecimal augend) 方法的作用
返回一个 BigDecimal,其值为 (this + augend),其标度为 max(this.scale(), augend.scale())。
9、subtract(BigDecimal subtrahend) 的作用
减法
10、multiply(BigDecimal multiplicand) 的作用
乘法
11、divide(BigDecimal divisor) 的作用
除法
12、max(BigDecimal val) 的作用
返回此 BigDecimal 和 val 的最大值。
13、min(BigDecimal val) 的作用
返回此 BigDecimal 和 val 的最小值。
14、negate() 的作用
取反
15、plus() 的作用
返回 BigDecimal,其值为 (+this),其标度为 this.scale()。
16、pow(int n) 的作用
返回其值为 (thisn) 的 BigDecimal,准确计算该幂,使其具有无限精度。
17、precision() 的作用
返回此 BigDecimal 的精度。
比如22.55555的精度是7,有几个数字精度就是几
18、remainder(BigDecimal divisor) 的作用
取模
19、scaleByPowerOfTen(int n) 的作用
返回其数值等于 (this * 10n) 的 BigDecimal。
20、setScale(int newScale) 的作用
返回一个 BigDecimal,其标度为指定值,其值在数值上等于此 BigDecimal 的值。
21、signum的作用
返回此 BigDecimal 的正负号函数。
当此 BigDecimal 的值为负、零或正时,返回 -1、0 或 1。
22、stripTrailingZeros() 的作用
返回数值上等于此小数,但从该表示形式移除所有尾部零的 BigDecimal。
23、BigDecimal的底层数据结构使什么?它是怎么保证精度的?(阿里面试题)
目录
3、private final BigInteger intVal;的作用
5、private transient int precision;的作用
8、add(BigDecimal augend) 方法的作用
9、subtract(BigDecimal subtrahend) 的作用
10、multiply(BigDecimal multiplicand) 的作用
11、divide(BigDecimal divisor) 的作用
18、remainder(BigDecimal divisor) 的作用
19、scaleByPowerOfTen(int n) 的作用
23、BigDecimal的底层数据结构使什么?它是怎么保证精度的?(阿里面试题)
十进制整数在转化成二进制数时不会有精度问题,那么把十进制小数扩大N倍让它在整数的维度上进行计算,并保留相应的精度信息。
本文详细探讨了Java中BigDecimal类的重要特性,包括其继承结构、核心成员变量、构造方法和一系列数学运算方法如加减乘除、取反、幂运算等。同时,解释了scale、precision和intVal的作用,并介绍了BigDecimal如何保证计算精度。
4969

被折叠的 条评论
为什么被折叠?



