BigDecimal类型(+ - * /)所用的属性

11.10 BigDecimal类

对于不需要任何准确计算精度的数字可以直接使用float或double,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数的操作。BigDecimal类的常用方法如表11-15所示。

表11-15 BigDecimal类的常用方法

序号

方    法

类型

描    述

1

public BigDecimal(double val)

构造

将double表示形式转换

为BigDecimal

2

public BigDecimal(int val)

构造

将int表示形式转换为

BigDecimal

3

public BigDecimal(String val)

构造

将字符串表示

形式转换为BigDecimal

4

public BigDecimal add(BigDecimal augend)

普通

加法

5

public BigDecimal subtract(BigDecimal
subtrahend)

普通

减法

6

public BigDecimal multiply(BigDecimal
multiplicand)

普通

乘法

7

public BigDecimal divide(BigDecimal
divisor)

普通

除法

范例:进行四舍五入的四则运算

package org.lxh.demo11.numberdemo;
import java.math.BigDecimal;
class MyMath {public static double add(double d1, double d2)
{        // 进行加法运算BigDecimal b1 = new BigDecimal(d1);BigDecimal b2 = new BigDecimal(d2);return b1.add(b2).doubleValue();}public static double sub(double d1, double d2)
{        // 进行减法运算BigDecimal b1 = new BigDecimal(d1);BigDecimal b2 = new BigDecimal(d2);return b1.subtract(b2).doubleValue();}public static double mul(double d1, double d2)
{        // 进行乘法运算BigDecimal b1 = new BigDecimal(d1);BigDecimal b2 = new BigDecimal(d2);return b1.multiply(b2).doubleValue();}public static double div(double d1,
double d2,int len) {// 进行除法运算BigDecimal b1 = new BigDecimal(d1);BigDecimal b2 = new BigDecimal(d2);return b1.divide(b2,len,BigDecimal.
ROUND_HALF_UP).doubleValue();}public static double round(double d,
int len) {     // 进行四舍五入
操作BigDecimal b1 = new BigDecimal(d);BigDecimal b2 = new BigDecimal(1);// 任何一个数字除以1都是原数字// ROUND_HALF_UP是BigDecimal的一个常量,
表示进行四舍五入的操作return b1.divide(b2, len,BigDecimal.
ROUND_HALF_UP).doubleValue();}
}
public class BigDecimalDemo01 {public static void main(String[] args) {System.out.println("加法运算:" +
MyMath.round(MyMath.add(10.345,
3.333), 1));System.out.println("乘法运算:" +
MyMath.round(MyMath.mul(10.345,
3.333), 3));System.out.println("除法运算:" +
MyMath.div(10.345, 3.333, 3));System.out.println("减法运算:" +
MyMath.round(MyMath.sub(10.345,
3.333), 3));}
}

转载于:https://www.cnblogs.com/koal/p/4486295.html

BigDecimal类的加减乘除相关推荐

  1. BigDecimal类(精度计算类)的加减乘除

    BigDecimal类 对于不需要任何准确计算精度的数字可以直接使用float或double,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数 ...

  2. Java中的BigDecimal类你真的了解吗?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:HikariCP www.jianshu.com/p/c81 ...

  3. Java 中的 BigDecimal 类你了解多少?

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:什么?你还在使用fastjson,性能太差了个人原创+1博客:点击前往,查看更多 作者:HikariCP 链接: ...

  4. 后端:Java中的BigDecimal类你了解多少?

    我们都知道浮点型变量在进行计算的时候会出现丢失精度的问题.如下一段代码: System.out.println(0.05 + 0.01); System.out.println(1.0 - 0.42) ...

  5. BigDecimal类的使用

    BigDecimal类的使用 一般常用的数据类型int和double类型但是在项目中我们会使用到大整数的处理类BigDecimal类 它有着自己的加减乘除和比较大小的方法 一.BigDecimal加减 ...

  6. Java常用接口与类——Math类、Random类、BigDecimal类

    >Math类 功能:Math类是用来搞数学相关计算的类,构造函数私有化,有很多静态方法: >方法举例,详见API文档 Math.random();//随机返回一个零到一百之间的小数: 另外 ...

  7. Java中BigDecimal类型的加减乘除及大小比对

    Java中BigDecimal类型的加减乘除及大小比对 前言 BigDecimal解释 创建BigDecimal类型 加减乘除计算 结果分析 结论 除法的补充 两个BigDecimal的比对 前言 在 ...

  8. Java中的BigDecimal类你了解多少?

    点击上方"IT牧场",选择"设为星标"技术干货每日送达! 来源:https://urlify.cn/naiEva 前言 我们都知道浮点型变量在进行计算的时候会出 ...

  9. JAVA基础再回首(十三)——BigInteger类、BigDecimal类、Date类、DateFormat类、Calendar类

    JAVA基础再回首(十三)--BigInteger类.BigDecimal类.Date类.DateFormat类.Calendar类 版权声明:转载必须注明本文转自程序员杜鹏程的博客:http://b ...

最新文章

  1. linux网卡设置adsl上网,Linux下设置ADSL自动拨号上网
  2. python代码实现二叉树的镜像树
  3. 新华网泸州分频道报道IT诗人
  4. sqlserver2008 安装时需要重启的解决办法
  5. UVA - 11437 Triangle Fun(简单几何)
  6. 北森iTalentX 3.0:聚焦场景一体,开启HR全面数字化时代
  7. 高通最强芯片855发布!AI性能比华为苹果翻倍,商用5G,标配屏下指纹
  8. 【例9.3】求最长不下降序列
  9. 比特币创业公司Circle首获数字货币许可证
  10. 零售券商之王:零佣金的罗宾侠的400亿美金
  11. WebService
  12. Linux驱动开发: USB驱动开发
  13. 【一起学Rust · 项目实战】命令行IO项目minigrep——测试驱动开发完善功能
  14. 一个放在口袋里的项目,将社交裂变做到了极致
  15. 用tbtools基因家族分析《一》
  16. IP0_Verilog实现基于双线性插值算法的图像放大IP设计
  17. 大数据面试题汇总(含数仓)
  18. bzoj 1106: [POI2007]立方体大作战tet(贪心+树状数组)
  19. 苹果手机升级13无法开机_苹果手机更新时突然断电,手机无法开机,为什么?...
  20. 加州洛杉矶计算机研究生,加州洛杉矶计算机硕士文书要求

热门文章

  1. Linux 挂在命令mount
  2. 情怀成驱动力 网游改编手游能火多久?
  3. 建立表/索引时的 存储参数:【PCTUSED参数与PCTFREE参数】
  4. Android SDK目录结构介绍
  5. Android调用手机浏览器打开某网页出现异常情况
  6. HBuilder 模拟器连接默认端口
  7. opencv多线程显示的问题和解决方法
  8. 如何向前一个Fragment回传信息?
  9. html5-6 Frame框架窗口类型
  10. switchcase的用法