Math 、 BigDecimal

Math

Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
abs:返回当前值的绝对值;
cbrt:返回当前值的立方根;
ceil:返回当前值最小的(最接近负无穷大) 值,该值大于等于参数,并等于某个整数;
floor:返回当前值最大的(最接近正无穷大) 值,该值小于等于参数,并等于某个整数;
log(double a) :返回 double 值的自然对数(底数是 e);
log10(double a) :返回 double 值的底数为 10 的对数;
log1p(double x):返回参数与 1 之和的自然对数;
max(double a, double b):返回两个 double 值中较大的一个;
min(double a, double b):返回两个 double 值中较小的一个;
signum(double d):返回参数的符号函数;如果参数为 0,则返回 0;如果参数大于 0,则返回 1.0;如果参数小于 0,则返回 -1.0。

BigDecimal

  • BigDecimal不可变的、任意精度的有符号十进制数。

BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以 10 的负 scale 次幂。因此,BigDecimal 表示的数值是 (unscaledValue × 10-scale)。

BigDecimal 类提供以下操作:
  • 算术、标度操作、舍入、比较、哈希算法和格式转换。
  • toString() 方法提供 BigDecimal 的规范表示形式。

构造方法摘要

  1. BigDecimal(BigInteger val) :将 BigInteger 转换为 BigDecimal。
  2. BigDecimal(BigInteger unscaledVal, int scale) :将 BigInteger 非标度值和 int 标度转换为 BigDecimal。
  3. BigDecimal(BigInteger unscaledVal, int scale, MathContext mc):将 BigInteger 非标度值和 int 标度转换为 BigDecimal(根据上下文设置进行舍入)。
  4. BigDecimal(BigInteger val, MathContext mc): 将 BigInteger 转换为 BigDecimal(根据上下文设置进行舍入)。
  5. BigDecimal(char[] in):将 BigDecimal 的字符数组表示形式转换为 BigDecimal,接受与 BigDecimal(String) 构造方法相同的字符序列。
  6. BigDecimal(char[] in, int offset, int len) :将 BigDecimal 的字符数组表示形式转换为 BigDecimal,接受与 BigDecimal(String) 构造方法相同的字符序列,同时允许指定子数组。
  7. BigDecimal(char[] in, int offset, int len, MathContext mc):将 BigDecimal 的字符数组表示形式转换为 BigDecimal,接受与 BigDecimal(String) 构造方法相同的字符序列,同时允许指定子数组,并根据上下文设置进行舍入。
  8. BigDecimal(char[] in, MathContext mc) :将BigDecimal 的字符数组表示形式转换为 BigDecimal,接受与 BigDecimal(String) 构造方法相同的字符序列(根据上下文设置进行舍入)。
  9. BigDecimal(double val):将 double 转换为 BigDecimal,后者是 double 的二进制浮点值准确的十进制表示形式。
  10. BigDecimal(double val, MathContext mc):将 double 转换为 BigDecimal(根据上下文设置进行舍入)。
  11. BigDecimal(int val) :将 int 转换为 BigDecimal。
  12. BigDecimal(int val, MathContext mc):将 int 转换为 BigDecimal(根据上下文设置进行舍入)。
  13. BigDecimal(long val):将 long 转为BigDecimal。
  14. BigDecimal(long val, MathContext mc) :将 long 转换为 BigDecimal(根据上下文设置进行舍入)。
  15. BigDecimal(String val):将 BigDecimal 的字符串表示形式转换为 BigDecimal。
  16. BigDecimal(String val, MathContext mc):将 BigDecimal 的字符串表示形式转换为 BigDecimal,接受与 BigDecimal(String) 构造方法相同的字符串(按照上下文设置进行舍入)。

方法摘要

abs():返回 BigDecimal,其值为此 BigDecimal 的绝对值,其标度为 this.scale()。
compareTo(BigDecimal val):将此BigDecimal与指定的 BigDecimal 比较。
doubleValue():将此 BigDecimal 转换为 double。
equals(Object x):比较此 BigDecimal 与指定的 Object 的相等性。
hashCode():返回此 BigDecimal 的哈希码。
intValue():将此 BigDecimal 转换为 int。
longValueExact():将此 BigDecimal 转换为 long,以检查丢失的信息。
max(BigDecimal val):返回此 BigDecimal 和 val 的最大值。
min(BigDecimal val):返回此 BigDecimal 和 val 的最小值。
plus():返回 BigDecimal,其值为 (+this),其标度为 this.scale()。
int scale():返回此 BigDecimal 的标度。shortValueExact():将此 BigDecimal 转换为 short,以检查丢失的信息。
toBigInteger():将此 BigDecimal 转换为 BigInteger。
static BigDecimal valueOf(double val):使用Double.toString(double) 方法提供的 double 规范的字符串表示形式将 double 转换为 BigDecimal。
static BigDecimal valueOf(long val):将 long 值转换为具有零标度的 BigDecimal。
static BigDecimal valueOf(long unscaledVal, int scale):将 long 非标度值和 int 标度转换为 BigDecimal。

使用BigDecimal的原因:因为它的精度高,涉及到很精密的计算的时候用浮点数不精确,需要使用BigDecimal提高准确性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值