java double 做运算精度损失问题
来源:互联网 发布:郑和宝船有多大 知乎 编辑:程序博客网 时间:2024/06/11 17:47
- 看代码:
double a = 0.01; double b = 0.0109; double c=a+b; System.out.println(c); 大家看到这里说结果肯定是:0.0209; 计算机运算结果:0.020900000000000002
由此可见这里存在精度问题,在支付等方面这就是非常重要的。
解决办法:
需要使用BigDecimal这个类:
public static double add(double v1, double v2) { BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); return b1.add(b2).doubleValue(); } public static double sub(double v1, double v2) { BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); return b1.subtract(b2).doubleValue(); }
使用以上做加减 就不会存在精度问题。乘除 请自行查看类的方法
2 0
- java double 做运算精度损失问题
- java double 精度损失问题
- java double 计算损失精度
- java double 计算损失精度
- Java中double数据类型计算会损失精度问题
- double运算精度问题
- JAVA编程——论浮点运算损失精度问题
- java中四舍五入——double转BigDecimal的精度损失问题
- 关于java中Double类型的运算精度问题
- 关于java中Double类型的运算精度问题
- Java中运算精度的问题(double与BigDecimal)
- 关于java中Double类型的运算精度问题
- 关于java中Double类型的运算精度问题
- 关于 java 中 Double 类型的运算精度问题
- 关于java中Double类型的运算精度问题
- 关于java中Double类型的运算精度问题
- 关于java中Double类型的运算精度问题
- 关于java中Double类型的运算精度问题
- iOS8的iPad环境下打不开相册或者拍照
- Android--Gridview使用SimpleAdapter加载bitmap图片
- SpringBoot-快速搭建WEB工程
- Android 打开闪光灯
- 小知识 哈哈
- java double 做运算精度损失问题
- SystemParametersInfo获取桌面工作区域
- 框架
- ios sqlite3 curd 小笔记
- 【Android】SpannableString格式化数字(实数:大.小)
- ramdisk.img system.img userdata.img 分析
- JVM学习笔记
- 【牛客网】栈的压入、弹出序列
- MYSQLsh: ./bin/my_print_defaults: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory