2021-06-27

Java的BigDecimal类
    为了能精确表示、计算浮点数,Java提供了BigDecimal类,该类提供了大量的构造器用于创建 BigDecimal对象,包括把所有的基本数值型变量转换成一个BigDecimal对象,也包括利用数字字符串、 数字字符数组来创建BigDecimal对象。

不推荐使用构造器来转换浮点型数据,会导致精度损失
  如果要转换浮点型数据,推荐使用BigDecimal.valueOf(double) 或者使用形参为字符串类型的构造器
    常用构造器
    构造器                      说明 
BigDecimal    (char[] in)      将BigDecimal的字符数组表示形式转换为 BigDecimal,接受与 BigDecimal(String) 构造方法相同的字符序列。 
演示浮点型精度丢失问题
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210627113805411.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MDIwNTY0Nw==,size_16,color_FFFFFF,t_70)

 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210627113800829.png)


BigDecimal     (double val)     将 double转换为 BigDecimal,后者是double的二进制浮点值准确的十进制表示形式。 
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2021062711374729.png)

BigDecimal     (int val)   将 int 转换为 BigDecimal。BigDecimal(long val) 将 long转换为 BigDecimal。 
BigDecimal     (String val)     将 BigDecimal 的字符串表示形式转换为 BigDecimal。
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210627113739446.png)

常用方法
修饰符  返回值类型  方法(形参)        说明 
static    BigDecimal    valueOf(double val)    使用 Double.toString(double) 方法提供 的 double 规范的字符串表示形式将 double 转换为 BigDecimal。 
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210627113730249.png)

Static   BigDecimal   valueOf(long val)    将 long 值转换为具有零标度的 BigDecimal。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2021062711371911.png)

BigDecimal   abs()  返回 BigDecimal,其值为此 BigDecimal 的绝对值,其标度为 this.scale()。 
BigDecimal   add(BigDecimal augend)        返回一个 BigDecimal,其值为 (this + augend)
BigDecimal  subtract(BigDecimal subtrahend)  返回一个BigDecimal,其值为 (this - subtrahend),
BigDecimal  multiply(BigDecimal multiplicand) 返回一个BigDecimal,其值为(this×multiplicand)
BigDecimal   divide(BigDecimal divisor)       返回一个 BigDecimal,其值为 (this / divisor)
BigDecimal   pow(int n)                    返回其值为 (thisn) 的 BigDecima
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2021062711370765.png)

int          compareTo(BigDecimal val)      将此BigDecimal 与指定的BigDecimal 比较。
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210627113659860.png)

Byte       byteValue()                将此 BigDecimal 转换为 byte,
byte 		  byteValueExact()            将此 BigDecimal 转换为 byte,以检查丢 失的信息。
Short		 shortValue() 				   将此 BigDecimal 转换为 short
Short      shortValueExact()            将此 BigDecimal 转换为short,以检查丢失的信息
int        intValue()                   将此 BigDecimal 转换为 int。
int        intValueExact()               将此 BigDecimal 转换为 int,以检查丢失的信息
long 		longValue() 				   将此 BigDecimal 转换为 long。
Long		longValueExact() 			   将此 BigDecimal 转换为 long,以检查丢失的信息
float 		floatValue() 					将此 BigDecimal 转换为 float。
double 	doubleValue() 				将此 BigDecimal 转换为 double。
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210627113645292.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MDIwNTY0Nw==,size_16,color_FFFFFF,t_70)

String  toString() 返回此 BigDecimal 的字符串表示形式,如果需要指数,则使用科学记数法
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210627113632105.png)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值