BigDecimal类型常用的属性和方法,解决科学计数法

BigDecimal概述

BigDecimal是处理高精度的浮点数运算的常用的一个类,用来对超过16位有效位的数进行精确的运算。

BigDecimal有哪些属性和方法(加减乘除)

1.add(BigDecimal) 相加,返回BigDecimal对象
2.subtract(BigDecimal) 相减 返回BigDecimal对象
3.multiply(BigDecimal) 相乘 返回BigDecimal对象
4.divide(BigDecimal) 相除 返回BigDecimal对象
eg:(注意精度)

BigDecimal bigDecimal = BigDecimal.valueOf(lateRepaymentContinual.getRepayInterestAmount()).divide(new BigDecimal("4"),0, BigDecimal.ROUND_UP);

5.abs() 将BigDecimal的值转化为绝对值
6.doubleValue() 将BigDecimal的值转换成双精度数
7.stripTrailingZeros() 去掉小数点后的0
8.toPlainString() 避免出现科学计数法
9.floatValue() 将BigDecimal的值转换成单精度数
10.longValue() 将BigDecimal的值转换成长整数
11.intValue() 将BigDecimal的值转换成整数
12.negate() 相反数
13.pow(int n) 幂次方,如BigDecimal.valueOf(2).pow(3)的值为8
eg:

BigDecimal.valueOf(2).pow(3)        值为8

向上向下取整

setScale(0, BigDecimal.ROUND_UP)
setScale(0, BigDecimal.ROUND_DOWN)

什么时候可能会出现科学计数法显示

当需要将BigDecimal中保存的浮点数值打印出来,特别是在页面上显示的时候,就有可能遇到预想之外的科学技术法表示的问题。

一般直接使用 BigDecimal.toString()方法即可以完成浮点数的打印

直接输出:

System.out.println( new BigDecimal("2275344402.000").toString());

打印的结果为:2.272444402E9.000

去掉小数点后的0并且打印正常的数字

System.out.println( new BigDecimal("2275344402.000").stripTrailingZeros().toPlainString());

打印的结果为:2272444402

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值