判断一个double类型的数是不是整数
生活随笔
收集整理的這篇文章主要介紹了
判断一个double类型的数是不是整数
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. java 常見的做法是強(qiáng)轉(zhuǎn)為整形,然后判斷是否相等,例如:
這肯定是有問(wèn)題的,比如a是一個(gè)很大的數(shù),已經(jīng)超出int的范圍,那么強(qiáng)轉(zhuǎn)就報(bào)錯(cuò)了,用long類型好一點(diǎn)。而且阿里巴巴代碼規(guī)范也提示這樣寫不規(guī)范,原因以及推薦的寫法都在圖里。
2. 還有就是對(duì)于js這種弱類型語(yǔ)言,向下取整判斷是否相等。
Math.floor(1.23) === 1
3. 還有一種偷懶的寫法,直接 mod 1 == 0 即可,Java和js都可以使用,但也同樣存在精度問(wèn)題,比如:1.0000000000000001 % 1,它的結(jié)果是0。
綜上所述:以上寫法平時(shí)寫問(wèn)題不大,可以用用。但是在特定領(lǐng)域的項(xiàng)目里,請(qǐng)參考阿里的推薦寫法,定義一個(gè)足夠小、符合你們項(xiàng)目實(shí)際需求的變量 ? ,這個(gè)值在java中比如設(shè)置為Double.MIN_VALUE,兩數(shù)相減取絕對(duì)值小于該變量,我們就認(rèn)為是相等的。?
總結(jié)
以上是生活随笔為你收集整理的判断一个double类型的数是不是整数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux虚拟机上离线安装ansible
- 下一篇: 关于KEIL SCT文件重写