在进行商业运算时解决BigDecimal的精度丢失问题
System.out.println(0.05+0.01);
System.out.println(1.0-0.42);
System.out.println(4.015*100);
System.out.println(123.3/100);
在运行这段代码时就会发现一些列的问题,java并不像其他语言那样对货币的运算有特殊的处理,一切只能靠自己造轮子了
public static BigDecimal add(double v1,double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.add(b2);
}
public static BigDecimal sub(double v1,double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v2));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.subtract(b2);
}
public static BigDecimal mul(double v1,double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.multiply(b2);
}
public static BigDecimal div(double v1,double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.divide(b2);
}
转载于:https://www.cnblogs.com/chenligeng/p/9952818.html
在进行商业运算时解决BigDecimal的精度丢失问题相关推荐
- java中double类型精度丢失问题及解决方法
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源: https://blog.csdn.net/yacolsp ...
- js 转换数字为decmail_BigDecmail(解决java计算精度问题)
当使用double进行商业运算时,double计算会丢失精度.可以使用BigDecimal进行计算. import java.math.BigDecimal; import org.junit.Tes ...
- double operator[](int i)_java中double类型精度丢失问题及解决方法
原文链接:https://blog.csdn.net/yacolspace/article/details/78287394 double类型数据加减操作精度丢失问题 今天在项目中用到double类型 ...
- double java 精度丢失_java中double和float精度丢失问题及解决方法
在讨论两位double数0.2和0.3相加时,毫无疑问他们相加的结果是0.5.但是问题总是如此吗? 下面我们让下面两个doubles数相加,然后看看输出结果: @Test public void te ...
- Java中double类型精度丢失的问题_double类型数据加减操作精度丢失解决方法_BigDecimal取整
BigDecimal在用double做入参的时候,二进制无法精确地表示十进制小数,编译器读到字符串"0.0000002"和"1.0000002"之后,必须把它转 ...
- Java 中商业运算必备的精确运算类:BigDecimal
点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 码农小胖哥 来源 | 公众号「码农小胖哥」 1. 前言 今天群里一个初级开发者问为 ...
- js浮点数运算不精确 如何解决_解决 浏览器处理数字运算时精度丢失的方法
浏览器处理数字运算时精度丢失的方法 为什么0.1 + 0.2 不等于0.3.因为计算机不能精确表示0.1, 0.2这样的浮点数,计算时使用的是带有舍入误差的数 并不是所有的浮点数在计算机内部都存在舍入 ...
- mysql整型无符号 大小_解决mysql无符号整型自减运算时溢出的问题
溢出通常是指的数字类型的一个溢出问题了,对于这个问题小编整理了一篇关于解决mysql无符号整型自减运算时溢出的问题的教程,希望对各位同学会有所帮助. 在mysql中给一个无符号整型字段做自减运算时,如 ...
- bigdecimal取小数部分_小数精度丢失问题分析和解决
无论在什么业务中,钱?是非常重要的东西,对账的时候一定要对的上,不能这边少一分钱那边多一分钱.对于数值的计算,尤其是小数,floate和double都是禁止使用的. 阿里强制要求存放小数时使用 dec ...
最新文章
- 【第二篇】Volley的使用之加载图片
- 构建私有云时,需要考虑的十大要点
- [js插件]JqueryUI日期插件
- 当代年轻人,都有些不成文的规定?
- 四川省内二本计算机公立好的大学排名,四川有哪些二本院校是公立的?附四川省公立二本大学排名及分数线...
- 超导量子计算机速度多快,我国量子计算机实现量子霸权,计算速度比谷歌快了100亿倍...
- cognos-rs用下拉列表来控制交叉表的显示内容
- pr抖动插件_某宝价值135元的PS/AE/PR全套插件合集,一键安装,大神必备这一套就够了【第10期】...
- 点云 高斯 曲率matlab,计算三维散乱点云的曲率,包括主曲率,高斯曲率和平均曲率...
- CheckedListBoxControl 实现复选框的单选与多选功能
- 图书管理系统(一):出版社列表增加、删除和编辑
- Ghost module
- 笔记(八)Jetson Nano 跑通 jetson-inference
- 苹果app充值限制解除_2020还在充值退款?正规苹果app手游充值折扣来了!
- python判断素数的函数_python判断是否为素数
- JSON WEB TOKEN令牌快速入门学习 (jwt)
- 朋友圈爱心拼图php源码_朋友圈爱心形配图怎么弄 微信朋友圈九宫格心形拼图教程方法...
- oracle 固定顺序排序
- Android旗舰机与苹果,iPhone SE与最强Android旗舰机相比会如何
- 贴片电容封装尺寸与常规的贴片电阻的标准封装及额定功率 (转)