关于浮点数的比较以及提供精确的浮点数比较算法
来源:互联网 发布:逻辑思维和编程 编辑:程序博客网 时间:2024/06/05 17:49
例如:
public class Test{public static void main(String[] args) throws Exception{System.out.println("7.22-7.0 = " + (7.22f-7.0f));}}
Result:7.22-7.0 = 0.21999979
结果并不是我们所期望的0.22,而是0.21999979。
所以在编程中,如果用到浮点数,要特别注意误差问题,
并尽量避免浮点数的比较,特别是对精度有严格要求的货币等。
解决方法:
import java.math.BigDecimal;/***support exact arithmetic*@param v1*@param v2*/public class Test{public static void main(String[] args) throws Exception{System.out.print("7.22-7.0=" + subtract(7.22,7.0));}public static double subtract(double v1,double v2){BigDecimal b1 = new BigDecimal(Double.toString(v1));BigDecimal b2 = new BigDecimal(Double.toString(v2));return b1.subtract(b2).doubleValue();}}
阅读全文
0 0
- 关于浮点数的比较以及提供精确的浮点数比较算法
- 关于浮点数的比较
- 浮点数的比较
- 浮点数的比较
- 浮点数的比较
- 浮点数的比较
- 浮点数的比较
- 浮点数的比较
- 浮点数的比较
- 浮点数的比较
- 浮点数的比较
- 浮点数的比较
- 浮点数的比较
- 浮点数的比较
- 浮点数的比较
- 浮点数的比较
- 浮点数的比较
- 浮点数的比较
- SSM搭建
- FPGA设计-时序约束(中篇-实例分析)
- 欢迎使用CSDN-markdown编辑器
- CSS--相关优秀文章
- java集合类
- 关于浮点数的比较以及提供精确的浮点数比较算法
- C语言学习知识点(二):define和inline
- 图解设计模式
- C语言回调函数用法示例
- HDUOJ 2047
- for循环
- 【java学习】异常
- [VIJOS1456]最小总代价
- 精品绘画在线学习平台轻微课教程目录