最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言

Java在處理浮點(diǎn)數(shù)運(yùn)算時(shí),提供了NaN和Infinity兩個(gè)常量

一、NaN

(1)、NaN的定義:

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

(2)、NaN的測(cè)試

double類型測(cè)試:

 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和任何值都不相等,可以通過(guò)Double.isNaN(a)的方式來(lái)判斷是不是NaN,該方法實(shí)現(xiàn)也是通過(guò)v != v來(lái)判斷的。

包裝類Double類型測(cè)試:

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通過(guò)"=="比較和自己是相等的,和其他NaN不相等;
通過(guò)"equals"比較是,和自己相等,和其他NaN也相等。

NaN值的類型強(qiáng)轉(zhuǎn)測(cè)試:

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

可以看出將NaN強(qiáng)轉(zhuǎn)為int或long時(shí),值變?yōu)榱?;強(qiáng)轉(zhuǎn)為float時(shí),值仍為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 分別代表正無(wú)窮、負(fù)無(wú)窮

(2)、Infinity的測(cè)試

double類型的測(cè)試

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類型測(cè)試:

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,通過(guò)"=="比較和自己是相等的,和其他包裝類型的Infinity不相等,但是和其他基本類型的Infinity是相等的;
通過(guò)"equals"比較是,和自己相等,和其他Infinity也相等。

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

相關(guān)文章

  • JAVA異常信息Exception?e及e的相關(guān)方法解讀

    JAVA異常信息Exception?e及e的相關(guān)方法解讀

    這篇文章主要介紹了JAVA異常信息Exception?e及e的相關(guān)方法解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Java中泛型總結(jié)(推薦)

    Java中泛型總結(jié)(推薦)

    這篇文章主要介紹了Java中泛型總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 詳解SpringBoot中如何使用布隆過(guò)濾器

    詳解SpringBoot中如何使用布隆過(guò)濾器

    這篇文章主要為大家詳細(xì)介紹了在SpringBoot中如何簡(jiǎn)單在代碼中使用布隆過(guò)濾器,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-09-09
  • 如何修改json字符串中某個(gè)key對(duì)應(yīng)的value值

    如何修改json字符串中某個(gè)key對(duì)應(yīng)的value值

    這篇文章主要介紹了如何修改json字符串中某個(gè)key對(duì)應(yīng)的value值操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • Java集合框架概覽之ArrayList源碼刨析

    Java集合框架概覽之ArrayList源碼刨析

    本文主要從一個(gè)簡(jiǎn)單的代碼入手,對(duì)ArrayList?的最常用的源碼進(jìn)行刨析,文中源碼摘自?JDK1.8,源碼的注釋部分博主也加入了自己的翻譯,歡迎讀者食用
    2023-03-03
  • Springboot實(shí)現(xiàn)人臉識(shí)別與WebSocket長(zhǎng)連接的實(shí)現(xiàn)代碼

    Springboot實(shí)現(xiàn)人臉識(shí)別與WebSocket長(zhǎng)連接的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Springboot實(shí)現(xiàn)人臉識(shí)別與WebSocket長(zhǎng)連接的實(shí)現(xiàn),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-11-11
  • knife4j?整合?springboot的過(guò)程詳解

    knife4j?整合?springboot的過(guò)程詳解

    這篇文章主要介紹了knife4j整合springboot的過(guò)程,本次整合springboot版本為2.3.12,本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • RestClient?通過(guò)攔截器實(shí)現(xiàn)請(qǐng)求加密的示例

    RestClient?通過(guò)攔截器實(shí)現(xiàn)請(qǐng)求加密的示例

    本文介紹了如何通過(guò)攔截器實(shí)現(xiàn)請(qǐng)求加密,并通過(guò)RestClient優(yōu)化了加密過(guò)程,傳統(tǒng)的加密方法依賴對(duì)象轉(zhuǎn)換和序列化處理,容易導(dǎo)致加密不一致或難以調(diào)試的問(wèn)題,通過(guò)引入攔截器,可以直接操作請(qǐng)求體,避免了不必要的轉(zhuǎn)換步驟,確保加密過(guò)程與請(qǐng)求體完全一致,感興趣的朋友一起看看吧
    2025-02-02
  • Mybatis入門指南之實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)增刪改查

    Mybatis入門指南之實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)增刪改查

    數(shù)據(jù)持久層主要負(fù)責(zé)數(shù)據(jù)的增、刪、改、查等功能,MyBatis 則是一款優(yōu)秀的持久層框架,下面這篇文章主要給大家介紹了關(guān)于Mybatis入門指南之實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)增刪改查的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • Spring使用IOC與DI實(shí)現(xiàn)完全注解開(kāi)發(fā)

    Spring使用IOC與DI實(shí)現(xiàn)完全注解開(kāi)發(fā)

    IOC也是Spring的核心之一了,之前學(xué)的時(shí)候是采用xml配置文件的方式去實(shí)現(xiàn)的,后來(lái)其中也多少穿插了幾個(gè)注解,但是沒(méi)有說(shuō)完全采用注解實(shí)現(xiàn)。那么這篇文章就和大家分享一下,全部采用注解來(lái)實(shí)現(xiàn)IOC + DI
    2022-09-09

最新評(píng)論

偏关县| 长治市| 东阳市| 双流县| 萝北县| 延长县| 榆中县| 彭州市| 巨野县| 临城县| 景德镇市| 沈阳市| 新龙县| 英超| 赣州市| 澄迈县| 绥阳县| 资中县| 化州市| 桐梓县| 遂平县| 绩溪县| 绍兴县| 尚义县| 天峨县| 珲春市| 营山县| 竹溪县| 汶上县| 合作市| 吉木萨尔县| 肥东县| 西贡区| 卫辉市| 从化市| 禄丰县| 连南| 饶阳县| 南汇区| 仙游县| 溧阳市|