BigDecimal类的使用方法详解
来源:互联网 发布:java中不合法的标识符 编辑:程序博客网 时间:2024/06/09 13:54
前言
BigDecimal可以处理任意长度的浮点数运算,以下是对他的常用方法的总结
加减乘除
调用的函数:
public BigDecimal add(BigDecimal value); //加法运算public BigDecimal subtract(BigDecimal value); //减法运算public BigDecimal multiply(BigDecimal value); //乘法运算public BigDecimal divide (BigDecimal value,RoundingMode mode);//除法运算,第二个参数为精度
举例:
BigDecimal a = new BigDecimal(10.0);BigDecimal b = new BigDecimal(9.1);System.out.println(a.add(b));System.out.println(a.subtract(b));System.out.println(a.multiply(b));
结果:
19.0999999999999996447286321199499070644378662109375 0.9000000000000003552713678800500929355621337890625 90.9999999999999964472863211994990706443786621093750
精度设置
看了上面的例子,很明显的发现了一个问题——精度问题,事实上,正是因为转成二进制的时候产生了精度的问题,才会导致初这样的结果,所以我们需要在运算时添加精度。
设置精度的方法:
public BigDecimal setScale(int scale, RoundingMode roundingMode)
setScale(1)表示保留一位小数,默认用四舍五入方式 setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3 setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4 setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,2.35变成2.4setScaler(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35变成2.3,如果是5则向下舍
注释:
- scale指的是你小数点后的位数。比如123.456则scale就是3.
比如:BigDecimal b = new BigDecimal(“123.456”);
b.scale(),返回的就是3.- roundingMode是小数的保留模式。它们都是BigDecimal中的常量字段,有很多种。
比如:BigDecimal.ROUND_HALF_UP表示的就是4舍5入。
当然还有一种方式可以设置精度,就是在在实例化BigDecimal的时候用字符串。
BigDecimal abig=new BigDecimal("10.0"); BigDecimal bbig=new BigDecimal("9.1"); BigDecimal cbig=new BigDecimal("8.9");
关于除法的详细说明
public BigDecimal divide (BigDecimal value,int scale,RoundingMode mode);
相信此时的你应该也了解了各种参数的意思了
取反
因为Bigdecimal是无法直接用+-*/这些符号进行计算的,所以取反的时候也需要一个单独的方法来实现:
public BigDecimal negate()
举例:
System.out.println(abig.negate());
结果:
-10.0
阅读全文
0 0
- BigDecimal类的使用方法详解
- BigDecimal 使用方法详解
- BigDecimal 使用方法详解
- BigDecimal 使用方法详解
- BigDecimal 使用方法详解
- BigDecimal 使用方法详解
- BigDecimal 使用方法详解
- java.math.BigDecimal的使用方法
- Java BigDecimal的基本使用方法
- BigDecimal 使用方法详解(Java高精度计算)
- BigDecimal类详解
- BigDecimal类的详解【附加:整除报错的解决方案】
- BigDecimal类的使用
- BigDecimal类的加减乘除
- BigDecimal类的加减乘除(
- BigDecimal类的加减乘除
- BigDecimal类的加减乘除
- BigDecimal类的加减乘除
- 青岛游记2
- 使用三目运算嵌套方法 或 临时变量方法: 获取三个整数中最大值的数
- Java结构语句
- Arrays常用方法源码
- 数据结构实验之串一:KMP简单应用
- BigDecimal类的使用方法详解
- 【C++】用模板实现顺序表Vector
- mac 利用iTerm2 实现SSH自动登录
- JavaWeb学习笔记-XML-3
- Spring Boot之Spring Initializr搭建
- 五.ARM裸机学习之汇编写启动代码之关看门狗,开iCache,汇编程序和C程序互相调用
- python之Test Suite与Test Runner
- 一个不成熟的人
- 【软考】--CPU内部结构