1、为什么要使用BigDecimal类?

因为普通的加减乘除运算会存在精度缺失的问题,而使用BigDecimal这个类可以很好的解决这个问题,所以才会使用。

2、API:

计算实例:

普通的加减乘除运算:

public static void main(String[] args) {System.out.println("计算加法: " + BigDecimal.valueOf(1.9).add(BigDecimal.valueOf(0.2)));System.out.println("计算减法: " + BigDecimal.valueOf(1.9).subtract(BigDecimal.valueOf(1.5)));System.out.println("计算乘法: " + BigDecimal.valueOf(1.9).multiply(BigDecimal.valueOf(0.2)));System.out.println("计算除法: " + BigDecimal.valueOf(1.9).divide(BigDecimal.valueOf(0.2)));//也可以初始化进行加减乘除BigDecimal a = new Bigdecimal("1.9");a.add(BigDecimal.valueOf("0.2"));a.subtract(BigDecimal.valueOf("0.2"));a.multiply(BigDecimal.valueOf("0.2"));a.divide(BigDecimal.valueOf("0.2"));
}

当除不尽的时候,除法中也有相应的解决方法,比如四舍五入等:

public static void main(String[] args) {BigDecimal a = BigDecimal.valueOf(10), b = BigDecimal.valueOf(3);//第一个参数是被除数,第二个参数是保留的位数,第三个参数是采用什么方法保留小数System.out.println(a.divide(b, 3, BigDecimal.ROUND_HALF_UP));
}
// 该程序运行后输出:
3.33

最后就是小数转化为百分比,百分比转化为小数操作:

//小数转化为百分比
DecimalFormat df = new DecimalFormat("0.000%");
String s=df.format(0.01832);
最后s的值是1.832%
注:最后保留几位小数由小数点后0的个数表示//百分比转化为小数
String percent="1.823%";
percent=percent.replace("%","");
Float fn = Float.valueOf(percent) / 100;
BigDecimal d= new BigDecimal(fn);
System.out.println(d);
最终打印的结果是:0.018229998648166656494140625

BigDecimal精确运算相关推荐

  1. Java 中商业运算必备的精确运算类:BigDecimal

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 码农小胖哥 来源 | 公众号「码农小胖哥」 1. 前言 今天群里一个初级开发者问为 ...

  2. 非精确运算和精确运算

    Bug场景 sku价格比较 @Overridepublic boolean checkSKUEqualPrice(ItemDO itemDO) {boolean result = true;List& ...

  3. java怎么进行浮点数运算_【考试经验】Java中实现浮点数的精确运算

    [考试经验]Java中实现浮点数的精确运算 package com.lv; import java.math.BigDecimal; public class Arith { public stati ...

  4. Java Double类型精确运算解决

    Java中的简单浮点数类型float和double不能够进行运算. 首先我们想到的是四舍五入,Math类中的round方法不能设置保留几位小数,我们只能像这样(例如保留两位) Math.round(v ...

  5. 浮点数相加php,利用php怎么实现一个浮点数精确运算功能

    利用php怎么实现一个浮点数精确运算功能 发布时间:2020-12-15 16:06:03 来源:亿速云 阅读:94 作者:Leah 今天就跟大家聊聊有关利用php怎么实现一个浮点数精确运算功能,可能 ...

  6. 【JavaBigDecimal练习】利用BigDecimal精确计算欧拉数

    利用BigDecimal精确计算欧拉数小数点后面1000位 相信大家对于泰勒展开已经稔熟于心,接下来我们就利用下列的泰勒展开: e x = 1 + 1 1 ! x + 1 2 ! x 2 + 1 3 ...

  7. 使用BigDecimal进行精确运算

    首先我们先来看如下代码示例: 1 public class Test_1 { 2 public static void main(String[] args) { 3 System.out.print ...

  8. bigdicmal除法精度设置_Java BigDecimal浮点数运算--如何保证运算精度不溢出

    加减乘除四则运算是高级程序设计语言(不论机器语言.汇编还是其他高级语言)最基础的部分,Java作为最流行的软件开发语言之一,涉及四则运算的程序代码和功能业务随处可见.在笔者从事的基于Java语言银行. ...

  9. Java中的简单浮点数类型float和double不能够进行精确运算

    在java中,简单的浮点类型float和double是不能够进行运算.我们先看下面的两个程序代码: 代码一: import java.util.Scanner; class Circle { doub ...

最新文章

  1. 备份MySQL数据库的方法
  2. iPhone7总不在服务区?免费网络电话可解通话烦恼
  3. Leetcode--200. 岛屿数量
  4. kafka window 启动_Apache Flink结合Kafka构建端到端的Exactly-Once处理
  5. 数据缓存 php,数据缓存 · ThinkPHP3.2.3完全开发手册 · 看云
  6. 分区字段必须包含在主键字段_十年Java开发经验分享:24 个必须掌握的数据库面试问题...
  7. python程序的装修【文件可执行权限】【__name__】
  8. 数据库—并发调度的可串行性
  9. zepto,kissy前端框架实现跨域
  10. Android实战简易教程-第七十三枪(拨打、接听电话自动免提)
  11. 手游服务器常用架构图
  12. 多元逻辑回归公式推导
  13. 沈师 Java程序设计 PTA 填空题、程序填空题答案
  14. cubieboard mysql_Cubieboard开发笔记
  15. phpcms环境检测MySQL_WNMP nginx+php5+mysql测试环境安装(Windows7)(一)
  16. Python的eval函数详解
  17. Excel怎么换行?简单!Excel大神教会了我N种换行方法
  18. 防火墙、DCD与TCP Keep alive
  19. 误操作rm -rf /*之后该如何挽救,除了跑路还能怎么办
  20. 4.直方图介绍和使用|MySQL索引学习

热门文章

  1. Ubuntu 20.04.3 部署NAS于蜗牛星际C
  2. python读取sav文件_SPSS Modeler下sav格式转成csv格式
  3. 大龄程序员谎言_程序员告诉自己的9个谎言
  4. 2021-07-01笔记
  5. mint linux 软件商店,一站式安装:Ubuntu/LinuxMint安装QQ和迅雷等常用软件
  6. 1024,我们程序员的节日
  7. 传统车道线检测项目学习总结(附源码,复现日志与github链接)
  8. 【Micropython】肝货~使用USB_VCP通过USB串口与树莓派或PC端通信
  9. 常州大学计算机等级考试报名,英语四级考试口语报名
  10. 强迫对流换热系数测定所求实验公式的应用条件和范围式什么