欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中Double、Float類型的NaN和Infinity的具體使用

 更新時間:2023年06月12日 11:35:09   作者:Archie_java  
Java在處理浮點數(shù)運算時,提供了NaN和Infinity兩個常量,本文主要介紹了Java中Double、Float類型的NaN和Infinity的具體使用,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

Java在處理浮點數(shù)運算時,提供了NaN和Infinity兩個常量

一、NaN

(1)、NaN的定義:

 public static final double NaN = 0.0d / 0.0;
 public static final float NaN = 0.0f / 0.0f;

(2)、NaN的測試

double類型測試:

 double a = 0.0d / 0.0; //NaN
 double b = 0.0d / 0.0; //NaN
 System.out.println(a != a); //true
 System.out.println(a != b); //true
 System.out.println(Double.isNaN(a)); //true

基本類型:NaN和自己是不相等的,NaN和任何值都不相等,可以通過Double.isNaN(a)的方式來判斷是不是NaN,該方法實現(xiàn)也是通過v != v來判斷的。

包裝類Double類型測試:

double b = 0.0d / 0.0; //NaN
Double c = 0.0d / 0.0; //NaN
Double d = 0.0d / 0.0; //NaN
System.out.println(Double.isNaN(c)); //true
System.out.println(Double.isNaN(d)); //true
System.out.println(c == c); //true
System.out.println(c == d); //false
System.out.println(c == b); //false
System.out.println(c.equals(c)); //true
System.out.println(c.equals(d)); //true
System.out.println(c.equals(b)); //true

可以看出,包裝類型Double通過"=="比較和自己是相等的,和其他NaN不相等;
通過"equals"比較是,和自己相等,和其他NaN也相等。

NaN值的類型強轉(zhuǎn)測試:

double a = 0.0d / 0.0; //NaN
long b = (long) a; //0
int c = (int) a;  //0
float d = (float) a; //NaN

可以看出將NaN強轉(zhuǎn)為int或long時,值變?yōu)榱?;強轉(zhuǎn)為float時,值仍為NaN。

二、Infinity

(1)、Infinity的定義

?public static final double POSITIVE_INFINITY = 1.0 / 0.0;
?public static final double NEGATIVE_INFINITY = -1.0 / 0.0;
public static final float POSITIVE_INFINITY = 1.0f / 0.0f;
public static final float NEGATIVE_INFINITY = -1.0f / 0.0f;

POSITIVE_INFINITY 和NEGATIVE_INFINITY 分別代表正無窮、負無窮

(2)、Infinity的測試

double類型的測試

double a = 1.0 / 0.0; //Infinity
double b = 1.0 / 0.0; //Infinity
System.out.println(Double.isInfinite(a)); //true
System.out.println(a == a); //true
System.out.println(a == b); //true

基本類型的double,Infinity和自己相等,和其他的Infinity也相等。

包裝類Double類型測試:

double b = 1.0 / 0.0; //Infinity
Double c = 1.0 / 0.0; //Infinity
Double d = 1.0 / 0.0; //Infinity
System.out.println(Double.isInfinite(c)); //true
System.out.println(c == c); //true
System.out.println(c == d); //false
System.out.println(c == b); //true
System.out.println(c.equals(c)); //true
System.out.println(c.equals(d)); //true
System.out.println(c.equals(b)); //true

可以看出,包裝類型Double的Infinity,通過"=="比較和自己是相等的,和其他包裝類型的Infinity不相等,但是和其他基本類型的Infinity是相等的;
通過"equals"比較是,和自己相等,和其他Infinity也相等。

到此這篇關(guān)于Java中Double、Float類型的NaN和Infinity的具體使用的文章就介紹到這了,更多相關(guān)Java NaN Infinity內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MyBatis中映射文件的使用案例代碼

    MyBatis中映射文件的使用案例代碼

    這篇文章主要介紹了MyBatis中映射文件的使用,本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • Java中的Lambda表達式詳解

    Java中的Lambda表達式詳解

    這篇文章主要介紹了Java中的Lambda表達式詳解,Lambda 表達式是 JDK8 的一個新特性,可以取代大部分的匿名內(nèi)部類,寫出更優(yōu)雅的 Java 代碼,尤其在集合的遍歷和其他集合操作中,可以極大地優(yōu)化代碼結(jié)構(gòu),需要的朋友可以參考下
    2024-01-01
  • SpringBoot+BootStrap多文件上傳到本地實例

    SpringBoot+BootStrap多文件上傳到本地實例

    這篇文章主要介紹了SpringBoot+BootStrap多文件上傳到本地實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • mybatis整合spring實現(xiàn)開啟mapper.xml映射文件掃描

    mybatis整合spring實現(xiàn)開啟mapper.xml映射文件掃描

    這篇文章主要介紹了mybatis整合spring實現(xiàn)開啟mapper.xml映射文件掃描,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 詳解 Java HashMap 實現(xiàn)原理

    詳解 Java HashMap 實現(xiàn)原理

    這篇文章主要介紹了詳解 Java HashMap 實現(xiàn)原理的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • 詳解Spring Boot集成MyBatis(注解方式)

    詳解Spring Boot集成MyBatis(注解方式)

    本篇文章主要介紹了詳解Spring Boot集成MyBatis(注解方式),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 消息中間件詳解以及比較選擇

    消息中間件詳解以及比較選擇

    這篇文章主要介紹了消息中間件詳解以及比較選擇,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 使用mockito編寫測試用例教程

    使用mockito編寫測試用例教程

    這篇文章主要為大家介紹了使用mockito編寫測試用例教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • eclipse配置tomcat10的詳細步驟總結(jié)

    eclipse配置tomcat10的詳細步驟總結(jié)

    今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識,文章圍繞著eclipse配置tomcat10的詳細步驟展開,文中有非常詳細的介紹及圖文示例,需要的朋友可以參考下
    2021-06-06
  • Java設(shè)計模式之命令模式

    Java設(shè)計模式之命令模式

    這篇文章介紹了Java設(shè)計模式之命令模式,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10

最新評論