Math 类和BigDecimal 类

Math类

  • JDK文档(中文)中的解释如下:

Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。

  • 静态变量
public static final double PI     比任何其他值都更接近 e(即自然对数的底数)的 double 值。
public static final double E      比任何其他值都更接近 pi(即圆的周长与直径之比)的 double 值。
  • 常用方法
public static double floor(double a) :返回不大于它的最大整数 如, Math.(1.4) = 1 , Math.(-1.4) = -2
public static double ceil(double a) : 返回不小于它的最小整数 如,Math.ceil(1.4) =2 , Math.(-1.4) = -1
public static int min(int a,int b) :  返回最小值 如,Math.min(1, 2) = 1
public static int max(int a,int b) :  返回最大值 如,Math.max(1, 2) = 2
public static int abs(int a) :        返回绝对值 如,Math.abs(-5) = 5
public static int round(float a) :    表示“四舍五入”,计算方法是 Math.floor(x+0.5), 即将原来的数字加上0.5后再向下取整,如, Math.round(11.4) = 11, Math.round(-11.6) = -12

BigDecimal类

  • JDK文档(中文)中的解释如下:

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

  • 为什么要使用BigDecimal类

由于浮点数采用二进制系统表示,而二进制无法精确的表示1/10,好比十进制无法精确表示1/3一样。因此,对于很多值浮点数都是采用其能够表示的离目标值近的数来表示,这有可能会在计算中带来不易察觉的误差。为了解决基本数据类型浮点数不能进行精确计算的问题,Java中专门提供了java.math.BigDecimal类,其提供浮点数的精确计算功能

  • 构造器描述
BigDecimal(int val)       创建一个具有参数所指定整数值的对象。 
BigDecimal(double val)    创建一个具有参数所指定双精度值的对象。 
BigDecimal(long val)      创建一个具有参数所指定长整数值的对象。 
BigDecimal(String val)    创建一个具有参数所指定以字符串表示的数值的对象。
  • 常用方法
public BigDecimal add(BigDecimal augend)     BigDecimal对象中的值相加,然后返回这个对象。 
public BigDecimal subtract(BigDecimal)       BigDecimal对象中的值相减,然后返回这个对象。 
public BigDecimal multiply(BigDecimal)       BigDecimal对象中的值相乘,然后返回这个对象。 
public BigDecimal divide(BigDecimal)         BigDecimal对象中的值相除,然后返回这个对象。 
public string toString()                     将BigDecimal对象的数值转换成字符串。 
public double doubleValue()                  将BigDecimal对象中的值以双精度数返回。 
public float floatValue()                    将BigDecimal对象中的值以单精度数返回。 
public long longValue()                      将BigDecimal对象中的值以长整数返回。 
public int intValue()                        将BigDecimal对象中的值以整数返回。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值