本文以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. 【c语言】判断一个数是否为素数
  2. 用ruby的net/ssh链接远程的服务器
  3. linux下cmake命令行,深入理解CMake(1): CMake命令行参数
  4. Django框架(11.Django中的通过模型类查询数据以及相关函数和条件)
  5. 2 中间件的使用、异步action的创建
  6. alt复制选区就会卡 ps_PS入门视频教程笔记整理(二)工具栏介绍一
  7. Android静态代码扫描效率优化与实践
  8. 解决firefox字体发虚的问题
  9. pytorch 实现MLP(多层感知机)
  10. 在ASP.NET Identity 2.0中使用声明(Claims)实现用户组
  11. selenium 验证码_selenium自动化测试之验证码处理
  12. Lync Server 2013 标准版部署(十)边缘服务器部署[三]
  13. Web渗透测试实战:基于Metasploit 5.0
  14. [百晓生]-鼠标右键新建添加RTF文档
  15. JavaScript模拟出一个input用于添加本地文件
  16. 关于单精度浮点型精确位数7~8以及双精度浮点型精确位数15~16的解释
  17. 从因果关系来看小样本学习
  18. [分享]iOS开发 - 网络总结
  19. imx6q项目:使用psplash制作开机动画
  20. 搜索引擎优化SEO初探

热门文章

  1. 机器学习在网络安全领域的应用(二)
  2. Java并发编程模拟管程(霍尔Hoare管程、汉森Hansan管程、MESA管程)
  3. A pseudo attribute name is expected.解决方法
  4. 想玩IEO又怕跑得慢?LBank的“锁仓释放”了解下
  5. 世界首款前置前驱混动8挡自动变速器山东潍坊问世
  6. java 几种生成海报的方式
  7. 华为手机如何把计算机添加到桌面,华为手机一键锁屏添加桌面快捷方式的操作步骤...
  8. vue-cli 项目启动输出 INFO Starting development server... 69o/o after emitting CopyPlugin
  9. 职场语录:新人,没人会告诉你的职场潜规则
  10. DesignWare USB 2.0 OTG Controller (DWC_otg) Device Driver File List