1. bigdecimal类型四则运算:

  BigDecimal s = new Bigdecimal(5);

  BigDecimal x = new Bigdecimal(15);

依次为最基础的加减乘除:

  s.add(x);

  s.substract(x);

  s.multiply(x);

  s.divide(x);

  1. Bigdecimal类型比较大小:

s1.compareTo(s2);

返回结果:整形,1是大于,0是等于,-1是小于

2018-07-30补充

  1. 今天遇到的问题:BigDedcimal精度丢失
public static void main(String [] args){

        BigDecimal s1 = new BigDecimal(0.12);
BigDecimal s2 = new BigDecimal(0.24);
BigDecimal s3 = new BigDecimal("0.12");
BigDecimal s4 = new BigDecimal("0.24"); System.out.println(s1.add(s2));
System.out.println(s3.add(s4));
}

结果如下:

0.35999999999999998667732370449812151491641998291015625
0.36

解决方法:

1.new BigDecimal(0.12+"")

2.new BigDecimal(BigDecimal.valueOf(0.12))

3.new BigDecimal("0.12")

三种方法本质相同,都是将其转换为String类型

public static BigDecimal valueOf(double val) {
return new BigDecimal(Double.toString(val));
}

原因:浮点数在系统中是以二进制表示的,在进行计算的时候会有误差的存在

···

0.1不能用二进制表示导致数据精度丢失:

0.1×2=0.2 .....................0

0.2×2=0.4 ......................0

0.4×2=0.8 .....................0

0.8×2=1.6.......................1

0.6×2=1.2.......................1

0.2×2=0.4.......................0

.....

是无限循环的

···

BigDecimal相关整理的更多相关文章

  1. 你所不知道的 CSS 阴影技巧与细节 滚动视差?CSS 不在话下 神奇的选择器 :focus-within 当角色转换为面试官之后 NPOI 教程 - 3.2 打印相关设置 前端XSS相关整理 委托入门案例

    你所不知道的 CSS 阴影技巧与细节   关于 CSS 阴影,之前已经有写过一篇,box-shadow 与 filter:drop-shadow 详解及奇技淫巧,介绍了一些关于 box-shadow  ...

  2. BigDecimal使用整理

    BigDecimal使用整理 一.     BigDecimal简介 计算机计算中无论是float还是double都是浮点数,由于计算机是二进制的,导致在在浮点数计算时会出现精度丢失,因此引入BigD ...

  3. git相关整理

    title: git相关整理 toc: false date: 2018-09-24 20:42:55 git merge 和 git merge --no--ff有什么区别? git merge命令 ...

  4. Sqlite多线程相关整理

    Sqlite多线程相关整理 Sqlite With MultiThreads 什么是线程安全? 当多个线程访问某个方法时,不管你通过怎样的调用方式.或者说这些线程如何交替地执行,我们在主程序中不需要去 ...

  5. 页面元素坐标和偏移(clientX/pageX/screenX/layerX/offsetWidth/scrollWidth/clientWidth等)相关整理

    鼠标事件都是在特定位置发生的,我们可以通过event事件对象的各种属性来获得事件发生的坐标位置,有相对于视口的,有相对于整个文档的,同样页面元素的位置也有相对视口的,也有滚动后的,这些都比较容易混淆, ...

  6. Android数据库相关整理

    今天对Android中数据库相关的操作和代码做了一个整理,便于自己之后的查阅.主要内容有: 1.原生数据库写法 2.终端进sqlite的操作 3.第三方库 4.事务处理 5.权限和路径 一.原生数据库 ...

  7. linux查看硬件信息及驱动设备相关整理

    查看声卡设备:cat /proc/asound/cards 查看USB设备:cat /proc/bus/usb/devices 常用命令整理如下:用硬件检测程序kuduz探测新硬件:service k ...

  8. HTTP相关整理(上)

    这次整理HTTP相关知识点的初衷是因为项目中有大量与网络请求相关的知识细节点,所以这次整理的更多的是日常中用得到的点(参考图解HTTP),另外给打算做FE的新人们一些建议:多重视网络这方面的知识.文章 ...

  9. 前端XSS相关整理

    前端安全方面,主要需要关注 XSS(跨站脚本攻击 Cross-site scripting) 和 CSRF(跨站请求伪造 Cross-site request forgery) 当然了,也不是说要忽略 ...

随机推荐

  1. flask渲染模板

    Flask自身使用了jinja2模板,可以使用render_template()方法来渲染模板,只需要将模板名和关键字的参数传入. 该渲染模板的模块(views.py)会在 templates 文件夹 ...

  2. css各居中大法

    <!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...

  3. 上传文件ie7

    https://www.cnblogs.com/front-end-develop/p/6214818.html 第一步:html中引入jQuery-1.7.1.js和ajaxFileUpload.j ...

  4. JZOJ.5275【NOIP2017模拟8.14】水管

    Description

  5. iOS section 随tableview一起滚动

    @interface YGSectionHeaderView : UIView @property NSUInteger section; @property (nonatomic, weak) UI ...

  6. 原生js:js获得当前选中的内容的字体大小

    利用currentStyle()和ComputedStyle() function getstyle(obj, key) {    if (obj.currentStyle) {        ret ...

  7. 160712、Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)

    互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使 ...

  8. 【工具】SwitchHost的使用

    一.问题: 更改Host后,再次启用或者关闭启动Host,Host被恢复原状.原因是修改Host的顺序顺序有问题. 二.解决步骤: 修改Host之前,先点击右下角,关闭所有Host(白色的部分在下面表 ...

  9. eclipse中jar file与runnable jar file的区别

    直接运行 .class的方法     java  -cp .  com.network.Chat  , 不用加.class后缀 从eclipse中export 的jar file,仅仅是把.class ...

  10. 如何理解Nginx, WSGI, Flask之间的关系

    概览 之前对 Nginx,WSGI(或者 uWSGI,uwsgi),Flask(或者 Django),这几者的关系一存存在疑惑.通过查阅了些资料,总算把它们的关系理清了. 总括来说,客户端从发送一个 ...