解决计算精度问题:BigDecimal
BigDecimal类
BigDecimal所在包:java.math,不可变的、任意精度的有符号十进制数。BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成。
对于不需要任何准确计算精度的数字可以直接使用float或double,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数的操作
dobule例子
 public class TestMath {
     public static void main(String[] args) {
         double a1 = 0.1;
         double a2 = 0.2;
         double a3 = a1 + a2;
         System.out.println(a1 + " + " + a2 + " = " + a3);
     }
 }
猜猜结果是多少?
结果:0.1 + 0.2 = 0.30000000000000004
(常识应该是0.1 + 0.2 = 0.3)
BigDecimal例子
 import java.math.BigDecimal;
 public class TestMath {
     public static void main(String[] args) {
         double a1 = 0.1;
         double a2 = 0.2;
         double a3 = a1 + a2;
         System.out.println("使用double类型计算结果:" + a1 + " + " + a2 + " = " + a3);
         BigDecimal b1 = new BigDecimal("0.1");
         BigDecimal b2 = new BigDecimal("0.2");
         BigDecimal b3 = b1.add(b2);
         System.out.println("使用BigDecimal类型计算结果:" + b1 + " + " + b2 + " = " + b3);
     }
 }
输出结果:
使用double类型计算结果:0.1 + 0.2 = 0.30000000000000004
使用BigDecimal类型计算结果:0.1 + 0.2 = 0.3
解决计算精度问题:BigDecimal的更多相关文章
- JavaScript中解决计算精度丢失的问题
		
在做项目之前老师就给我们封装好了一个js文件,解决计算中丢失精度的一些函数,直接引用js文件就可以使用. eg: var numA = 0.1; var numB = 0.2; alert( numA ...
 - 金融项目java开发_BigDecimal(解决计算精度问题)
		
当使用double进行商业运算时,double计算会丢失精度.可以使用BigDecimal进行计算. import java.math.BigDecimal; import org.junit.Tes ...
 - [ JAVA编程 ] double类型计算精度丢失问题及解决方法
		
前言 如果你在测试金融相关产品,请务必覆盖交易金额为小数的场景.特别是使用Java语言的初级开发. Java基本实例 先来看Java中double类型数值加.减.乘.除计算式实例: public cl ...
 - JS数字计算精度误差的解决方法
		
本篇文章主要是对javascript避免数字计算精度误差的方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助. 如果我问你 0.1 + 0.2 等于几?你可能会送我一个白眼,0.1 + 0. ...
 - 0.1+0.2不等于0.3,微信小程序云开发如何解决JavaScript小数计算精度失准的问题
		
先看图 这个是JavaScript语言自身存在的一个问题.说道这里不得不提一下网上流传的JavaScript搞笑图 我们在使用云开发来开发微信小程序的时候,会经常遇到JavaScript小数计算精度失 ...
 - 关于JavaScript中计算精度丢失的问题
		
摘要: 由于计算机是用二进制来存储和处理数字,不能精确表示浮点数,而JavaScript中没有相应的封装类来处理浮点数运算,直接计算会导致运算精度丢失. 为了避免产生精度差异,把需要计算的数字升级(乘 ...
 - java用double和float进行小数计算精度不准确
		
java用double和float进行小数计算精度不准确 大多数情况下,使用double和float计算的结果是准确的,但是在一些精度要求很高的系统中或者已知的小数计算得到的结果会不准确,这种问题是非 ...
 - jmeter 中 浮点数计算精度问题
		
jmeter 中 浮点数计算精度问题解决方法: 编写 beanshell 时使用 java.math.BigDecimal 方法构造,使用 BigDecimal 并且一定要用 String 来够造. ...
 - 如何避开JavaScript浮点数计算精度问题(如0.1+0.2!==0.3)
		
不知道大家在使用JS的过程中有没有发现某些浮点数运算的时候,得到的结果存在精度问题:比如0.1 + 0.2 = 0.30000000000000004以及7 * 0.8 = 5.60000000000 ...
 
随机推荐
- High scalability with Fanout and Fastly
			
转自:http://blog.fanout.io/2017/11/15/high-scalability-fanout-fastly/ Fanout Cloud is for high scale d ...
 - 前端微信小程序电影类仿淘票票微信小程序
			
需求描述及交互分析设计思路和相关知识点电影界面顶部页签切换效果设计正在热映界面布局设计即将上映界面布局设计电影详情页设计我的界面列表导航设计登录设计 相关知识点(1)swiper滑块视图容器组件,可以 ...
 - [学习笔记]  kd-tree
			
本文参考这位dalao的题解 前置技能:二叉查找树 其实kd-tree很简单的啦 和BST都差不多的啦 就是在划分的时候把每一维都比较一下就行啦 (\(dalao\)的kd-tree教程) 然而本蒟蒻 ...
 - ELK平台搭建及日志监控
			
一.使用背景 当生产环境有很多服务器.很多业务模块的日志需要每时每刻查看时 二.环境 系统:centos 6.5 JDK:1.8 Elasticsearch-5.0.0 Logstash-5.0.0 ...
 - Maven中使用<version>LATEST</version>自动依赖最新版本引发的问题
			
今天在打包项目的过程中出现了编译问题,奇怪的是这个项目已经好久没有修改过了,报错如下. 找不到符号 [ERROR] 符号: 方法 intent(java.lang.String) [ERROR] 位置 ...
 - hdoj - 1248 寒冰王座
			
Problem Description 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票(记住,只有一张钞票),为了防止自己在战斗中频繁的死掉,他决定给自己买一些道具,于是他来到了地精商店前.死亡骑 ...
 - 编译失败,无法安装APK
			
编译失败,无法安装APK. 把libs目录中,全部内容清空,再重新编译就可以了. 应该是有些组件有冲突的原因! -------------------------------------------- ...
 - Unity内存优化之视频讲解
			
视频为中文讲解,mp4格式,大小3.05GB 目录 扫码时备注或说明中留下邮箱 付款后如未回复请至https://shop135452397.taobao.com/ 联系店主
 - HTTP、MQTT、Websocket、WebService区别
			
相同点: HTTP.MQTT.Websocket均为OSI 7层模型的[应用层协议]注意. WebService并非通信协议,而是一种远程接口调用(RPC)的框架技术. 不同点: MQTT MQTT协 ...
 - pypy安装与使用
			
首先安装pypy环境: yum install pypy -y yum install pypy-devel -y 然后安装pypy的pip:wget https://bootstrap.pypa.i ...