Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。

在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。

BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。

String a = "9999.9999";

int b = 9999;

double c = 9999.9999;

char d = 99;

// 不同类型转为BigDecimal

BigDecimal ma = new BigDecimal(a);

BigDecimal mb = new BigDecimal(b);

BigDecimal mc = new BigDecimal(c);

BigDecimal md = new BigDecimal(d);

System.out.println("ma:"+ma.toString());

System.out.println("mb:"+mb.toString());

System.out.println("mc:"+mc.toString());

System.out.println("md:"+md.toString());

// 加

BigDecimal add = ma.add(mb);

System.out.println("加法:"+add);

// 减

BigDecimal sub = ma.subtract(mb);

System.out.println("减法:"+sub);

// 乘

BigDecimal mul = mb.multiply(md);

System.out.println("乘法:"+mul);

// 除

BigDecimal div = mb.divide(md);

System.out.println("除法:"+div);

mc = mc.setScale(2, BigDecimal.ROUND_HALF_UP);

System.out.println("四舍五入:"+mc);

mc = mc.negate();

System.out.println("负数:"+mc);

运行结果如下:

ma:9999.9999

mb:9999

mc:9999.999900000000707223080098628997802734375

md:99

加法:19998.9999

减法:0.9999

乘法:989901

除法:101

四舍五入:10000.00

负数:-10000.00

java 中subtract的用法_java中BigDecimal加减乘除基本用法相关推荐

  1. java divide 用法_java中BigDecimal加减乘除基本用法

    Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数. 在实际应用中,需要对更大或者更小的数进 ...

  2. java中compare语句的用法,compare的用法_java中 compareTo()的程序代码及用法

    compare的用法与区别? 一.用法 v. (动词) 1.compare的基本意思是"比较,对照",主要用于比较事物的典型特征及其价值,而不在于比较相同与不同. 2.compar ...

  3. java implements用法_JAVA中implements的用法

    implements使用 interface Sport { void run(); void jump(); } class Athlete implements Sport { public vo ...

  4. java中final详解_Java中final用法与详解

    Java中final用法与详解 final作为Java中经常用到的关键字,了解final的使用方法是非常有必要的.这里从final关键字在数据域.方法和类中三个方面分析final关键字的主要用法. f ...

  5. cal java中的用法_Java中static用法

    Java中static用法 转自 http://blog.pfan.cn/sword2008/13772.html 一.static 请先看下面这段程序: public class Hello{ pu ...

  6. java 字符串用法_java中字符串的用法

    1.String中的每个字符都是一个16位的Unicode字符,用Unicode很容易表达丰富的国际化字符集,比如很好的中文支持.甚至Java的标识符都可以用汉字,但是没人会用吧(只在一本清华的< ...

  7. java中的集合框架_JAVA中的集合框架(上)List

    第一节 JAVA中的集合框架概述 集合的概念,现实生活中:很多事物凑在一起就是一个集合:数学中的集合:具有相同属性事物的总体:JAVA中的集合:是一种工具类,就像是容器,储存任意数量的具有共同属性的对 ...

  8. java中extends怎么用_Java 中extends與implements使用方法

    初學Java語言, 代碼中的extends和implements讓我感到很迷惑,現在終於弄明白它們之間的區別和用法了. //定義一個Runner接口 public inerface Runner { ...

  9. java关键字有什么用_JAVA中关键字有什么用

    展开全部 Java关键e68a84e8a2ad3231313335323631343130323136353331333363356566字及其作用 一. 关键字总览: 访问控制 private pr ...

  10. java中的 的意思_java中 的意思是什么意思是什么意思是什么意思

    关于 java中 的意思是什么意思是什么意思是什么意思的搜索结果 问题 java中 的意思是什么意思是什么意思是什么意思 java中 的意思是什么意思是什么意思是什么意思... 云计算小粉 2019- ...

最新文章

  1. MySQL设值自动修改时间
  2. 2017.9.12.语文
  3. 【PAT乙级】1033 旧键盘打字 (20 分)
  4. 利用辗转相除法计算最大公约数
  5. QT的Q3DBars类的使用
  6. JS OOP -02 深入认识JS中的函数
  7. 每日一笑 | 一些关于学编程的领悟
  8. linux的基础知识——TCP异常断开
  9. 用户自定义排序的几种实现思路
  10. Spring Boot swagger之前后端分离
  11. 解析深度学习:语音识别实践 (俞栋等著) 完整pdf[44MB]
  12. QT添加资源文件并使用
  13. Oracle下载12c安装包
  14. 基于matlab的暴雨强度公式参数推求,基于MATLAB的暴雨强度公式参数推求
  15. HG5520A型多用表校准仪
  16. 口腔行业的隐形冠军,现代牙科集团掘金步入新阶段
  17. 两分钟教你玩转千图成像Part1~
  18. jquery+cropper剪切、旋转、缩放图片
  19. 一个偶然发现还挺有意思的逻辑题
  20. 草稿 22.10.10 !!!!!! YUYU

热门文章

  1. Educational Codeforces Round 64 Div.2 D - 0-1-Tree
  2. 全面改革:解读 Vue 3.0 的变化
  3. Nginx+FastCGI支持HTTPS部署过程详述
  4. P2Psim分析笔记(5)-EventGenerator and Observer
  5. 《OpenACC并行程序设计:性能优化实践指南》一 3.1 性能分析技术和术语
  6. 用Mindjet MindManager 15 打开文件后停止响应的解决方法
  7. c#自定义控件做漂亮的列表
  8. SQLServer 合并ID相同行,同ID的列值累加。
  9. 《精通ASP.NET MVC 3框架》译者序
  10. 经典排序算法 - 堆排序Heap sort