解决浮点运算精度不准确,BigDecimal 加减乘除
package com.kflh.boxApi.utils.util;
import java.math.BigDecimal;
/**
* @program: BoxApi
* @description: 计算浮点数
* @author: eterntiyz
* @create: 2019-01-17 11:10
*/
public class DoubleCalendar {
/**
* @Description: 浮点加法
* @Param: []
* @return: java.lang.Double
* @Author: tonyzhang
* @Date: 2019-01-17 11:27
*/
public static Double add(String str1,String str2) {
BigDecimal bignum1 = new BigDecimal(str1);
BigDecimal bignum2 = new BigDecimal(str2);
BigDecimal bignum3 = bignum1.add(bignum2);
return bignum3.doubleValue();
}
/**
* @Description: 浮点减法
* @Param: []
* @return: java.lang.Double
* @Author: tonyzhang
* @Date: 2019-01-17 11:27
*/
public static Double subtract(String str1,String str2) {
BigDecimal bignum1 = new BigDecimal(str1);
BigDecimal bignum2 = new BigDecimal(str2);
BigDecimal bignum3 = bignum1.subtract(bignum2);
return bignum3.doubleValue();
}
/**
* @Description: 浮点乘法
* @Param: str1为分母,str2为分子
* @return: java.lang.Double
* @Author: tonyzhang
* @Date: 2019-01-17 11:26
*/
public static Double multiply(String str1,String str2) {
BigDecimal bignum1 = new BigDecimal(str1);
BigDecimal bignum2 = new BigDecimal(str2);
BigDecimal bignum3 = bignum1.multiply(bignum2);
return bignum3.doubleValue();
}
/**
* @Description: 浮点除法
* @Param: []
* @return: java.lang.Double
* @Author: tonyzhang
* @Date: 2019-01-17 11:26
*/
public static Double divide(String str1,String str2) {
BigDecimal bignum1 = new BigDecimal(str1);
BigDecimal bignum2 = new BigDecimal(str2);
//参数意义.bignum1为分母,bignum2为分子,scale保留的位数,BigDecimal.ROUND_DOWN表示不进位
BigDecimal bignum3 = bignum1.divide(bignum2,2,BigDecimal.ROUND_DOWN);
return bignum3.doubleValue();
}
public static void main(String[] args) {
System.out.println(divide("4600.0","0.6"));
}
}
解决浮点运算精度不准确,BigDecimal 加减乘除的更多相关文章
- BigDecimal 解决double精度丢失问题(加减乘除)
package com.qcloud.component.publicservice.util; import java.math.BigDecimal; /** * 由于Java的简单类型不能够精确 ...
- 解决计算精度问题:BigDecimal
BigDecimal类 BigDecimal所在包:java.math,不可变的.任意精度的有符号十进制数.BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成 ...
- java用double和float进行小数计算精度不准确
java用double和float进行小数计算精度不准确 大多数情况下,使用double和float计算的结果是准确的,但是在一些精度要求很高的系统中或者已知的小数计算得到的结果会不准确,这种问题是非 ...
- BigDecimal加减乘除运算(转)
java.math.BigDecimal.BigDecimal一共有4个够造方法,让我先来看看其中的两种用法: 第一种:BigDecimal(double val) Translates a doub ...
- Java-从Double类型精度丢失认识BigDecimal
Java-从Double类型精度丢失认识BigDecimal 参考资料 https://www.jianshu.com/p/07e3eeb90f18 https://zh.wikipedia.org/ ...
- 金融项目java开发_BigDecimal(解决计算精度问题)
当使用double进行商业运算时,double计算会丢失精度.可以使用BigDecimal进行计算. import java.math.BigDecimal; import org.junit.Tes ...
- BigDecimal加减乘除及setScale的用法小结
Bigdecimal初始化: BigDecimal num = new BigDecimal(2.225667);//这种写法不允许,会造成精度损失. BigDecimal num = new Big ...
- BigDecimal类(精度计算类)的加减乘除
BigDecimal类 对于不需要任何准确计算精度的数字可以直接使用float或double,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数 ...
- js小数加减乘除时精度不准确
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_33237207/article/d ...
随机推荐
- MFC 封装类为静态链接库
mfc自带的基本控件都不怎么美观,所以一般开发者都会自定义类对控件进行重绘.手里也积累了不少控件的重绘,对对话框.静态文本.列表框等. 但是每次都要把这些类重新导入到新的工程里,比较麻烦,而且我也不想 ...
- 2018-8-10-C#-6.0-字符串-String-Interpolation
title author date CreateTime categories C# 6.0 字符串 String Interpolation lindexi 2018-08-10 19:16:52 ...
- kafka性能测试代码
bin/kafka-producer-perf-test.sh --num-records 5000000 --record-size 5000 \ --topic kafkatopic2 \ --b ...
- 开篇 | 揭秘 Flink 1.9 新架构,Blink Planner 你会用了吗?
本文为 Apache Flink 新版本重大功能特性解读之 Flink SQL 系列文章的开篇,Flink SQL 系列文章由其核心贡献者们分享,涵盖基础知识.实践.调优.内部实现等各个方面,带你由浅 ...
- Cortex-A9 Timing
在Cortex-A9的文档<Cortex-A9 NEON Media Processing Engine>Technical Reference Manual中有关于Instruction ...
- 在Spring Boot中使用Docker在测试中进行高级功能测试
最近又学到了很多新知识,感谢优锐课老师细致地讲解,这篇博客记录下自己所学所想. 想更多地了解Spring Boot项目中的功能测试吗?这篇文章带你了解有关在测试中使用Docker容器的更多信息. 本文 ...
- python元祖(tuple)
# 列表:有序,元素可以被修改 # 列表 # list # li = [111,22,33,44] # 元组:元素不可被修改,不能被增加或者删除 # ps: # tuple # tu = (11,22 ...
- java面试-泛型
1.什么是泛型?泛型有什么作用? 泛型就是参数化类型,也就是所操作的数据类型被指定为一个参数.这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛型方法. 在泛型出现之前, ...
- $Noip2018/Luogu5022$ 旅行
$Luogu$ $Description$ 一个$n$个点,$m$条边的图.$m=n-1$或$m=n$.任意选取一点作为起始点,可以去往一个没去过的点,或者回到第一次到达这个点时来自的点.要求遍历整个 ...
- Http请求头安全策略
今天在网上浪了许久,只是为了找一个很简单的配置,却奈何怎么都找不到. 好不容易找到了,我觉得还是记录下来的好,或许省得许多人像我一样浪费时间. 1.X-Frame-Options 如果网站可以嵌入到I ...