本文以Double为例,Float是相同的
普通的浮点计算

System.out.println(5 / 2); //2
System.out.println(5.0 / 2); //2.5  浮点数和整数进行运算时,会将整数自动提升为浮点型

Double对POSITIVE_INFINITY 、NEGATIVE_INFINITY 、NaN 的定义:

public static final double POSITIVE_INFINITY = 1.0 / 0.0;
public static final double NEGATIVE_INFINITY = -1.0 / 0.0;
public static final double NaN = 0.0d / 0.0;

浮点数比较大小
浮点数计算建议使用BigDecimal,如果仅仅是比较大小,可以使用Double.min和Double.max方法

System.out.println(Double.max(1.3,1.3000000001)); //1.3000000001
System.out.println(Double.min(1.3,1.3000000001)); //1.3System.out.println(0.7-0.6);  //0.09999999999999998
System.out.println(Double.min(0.7-0.6,0.1)); //0.09999999999999998
System.out.println(new BigDecimal(String.valueOf(0.7)).subtract(new BigDecimal(String.valueOf(0.6))));//0.1

NAN:not a number不是一个数字

Double num = Double.NaN;
System.out.println(0.0 / 0); //NAN:不是一个数
System.out.println(Double.NaN == Float.NaN);//false
System.out.println(Double.NaN == Double.NaN);//false
System.out.println(Double.isNaN(0.0 / 0));//true

INFINITY:无穷大
Double.isInfinite方法用于判断参数是否正无穷大或负无穷大。
Double.isFinite方法:用于判断参数是否是有限数字,如果参数是 NaN(非数字),或者是正、负无穷大的数,则返回 false。

System.out.println(1.0 / 0);//Infinity:正无穷大
System.out.println(1.0 / 0);//Infinity:正无穷大
System.out.println(1 / -0.0);//-Infinity:负无穷大
System.out.println(-1 / 0.0);//-Infinity:负无穷大//整数0会自动提升浮点数,因此不会报空指针异常
System.out.println(Double.isInfinite(1.0/ 0));//结果为:true
System.out.println(Double.isInfinite(1 / -0.0));//结果为:true
System.out.println(Double.isFinite(1 / 0.0));//结果为:false
System.out.println(Double.isFinite(1 / -0.0));//结果为:false

注意:

System.out.println(Double.isNaN(Double.POSITIVE_INFINITY));//false
System.out.println(Double.isFinite(Double.NaN));//false

Double和Float类型的max、min、isNaN、isFinite、isInfinite方法相关推荐

  1. 关于double和float类型的转换

    也就是说,我们只要写小数,就被认为是double类型 但是如果想要使用float类型的那么就要在后面加一个F double d = 3.14;//float f = 3.14;//错,3.14认为自己 ...

  2. c/c++ max/min 4种实现方法

    参考:https://blog.csdn.net/a_ran/article/details/74911031 1. 简单的宏实现 #define max(a,b) (((a) > (b)) ? ...

  3. C语言 printf 打印double、float类型

    #include <stdio.h> //库头文件/******************************************************************** ...

  4. Java中如何解决double和float精度不准的问题

    我们知道浮点数是无法在计算机中准确表示的,例如0.1在计算机中只是表示成了一个近似值,因此,对付点数的运算时结果具有不可预知性. 在进行数字运算时,如果有double或float类型的浮点数参与计算, ...

  5. 支付价格计算中精度问题之double,float

    前言 前段时间开发新的微信小程序,借此机会将老掉牙的支付模块重构,并且支持现金支付(之前都是虚拟币支付),在重构期间遇到计算上的一些精度问题,虽然数额影响非常小但是影响比较大,我觉得有必要总结以下遇到 ...

  6. mysql double 精度_Double类型精度问题引起的错误

    场景说明 研发同事让把某个double类型字段的值四舍五入保留2位小数,mysql中round(col,2)可以实现四舍五入并且保留2位小数,但是神奇的事情发生了:发现有的四舍五入是正确的,而有的不是 ...

  7. android float类型保留两位小数_你知道MySQL中Decimal类型和Float Double的区别吗?

    出处:cnblogs.com/panchanggui/p/10766607.html MySQL中存在float,double等非标准数据类型,也有decimal这种标准数据类型. 其区别在于,flo ...

  8. String和包装类Integer\Double\Long\Float\Character 都是final类型

    String和包装类Integer\Double\Long\Float\Character\Boolean 都是final类型 不可以改变 转载于:https://www.cnblogs.com/qq ...

  9. int和long类型取值范围。 基本数据类型 byte , short , char ,int , long , float ,double,boolean类型取值范围

    int和long类型取值范围. 1. int类型 ---------4字节(32位) ​ ------------------------------------------------------- ...

最新文章

  1. 软件驱动安装在docker_docker 安装软件
  2. RESTful Web Services in Spring 3(下)转载
  3. nodeMCU自动化控制实现空气质量管家
  4. trunc( mysql写法_使用oracle的trunc和dbms
  5. Sequence II HDU - 5919(主席树)
  6. (万字长文)HashMap, ConcurrentHashMap 原理及源码详解 java1.7
  7. 使用 GO-CQHttp或mirai框架 搭建QQ的机器人
  8. 斐讯n1卡在android,斐讯N1,看本地高清电影请务必刷coreelec
  9. itextpdf加盖章
  10. html语言单词背不下来,单词背不下来
  11. 微信小程序引入小图标
  12. [RK3399][Android7.1]触摸屏TP,敦泰FT5436驱动移植
  13. 2048小游戏lua
  14. Docker常用基础命令
  15. wordpress博客构建
  16. python二级练习和考试复习(分别格式化输出0.002178对应的科学表示法形式)
  17. 腾讯QQ企业邮箱设置
  18. 点成分享| 低温冷冻保存的技术研究(一)
  19. 2017微信公开课·张小龙演讲全文(下)
  20. 用Pytest+Allure生成漂亮的HTML图形化测试报告(废弃)

热门文章

  1. 中国节水灌溉设备产业运行分析与投资前景规划报告2022年版
  2. c语言调用函数的方法案例,C语言经典例题100例——C语言练习实例34解答(函数调用)...
  3. matlab获取2的整数次幂,如何快速判断正整数是2的N次幂
  4. SitePoint播客#25:WordPress与Matt Mullenweg
  5. 游戏对战匹配逻辑小结
  6. linux与信息安全,网络与信息安全系统安全Linux系统安全.ppt
  7. vb计算机怎么制作,教你如何制作VB的PCode调试器 -电脑资料
  8. MEX and Increments-(先拿一些的贪心思维)
  9. 【BLENDER】-渲染 背景设置
  10. JS(JavaScript)中实现深浅拷贝的几种方式(详细阅读 非常重要)。