Java判斷兩個(gè)浮點(diǎn)數(shù)相等
結(jié)論
一旦有浮點(diǎn)型數(shù)據(jù)參與運(yùn)算的結(jié)果,一定不要使用 “ == ” 與其比較。
提出問題
我們知道在Java中浮點(diǎn)數(shù)float 和 double 的值不能很精準(zhǔn)的表示一個(gè)小數(shù),因?yàn)闀?huì)有精度損失。
下面來看一個(gè)例子:
public class FloatTest { public static void main(String[] args){ double a = 6.9; double b = 3.0; System.out.println( a / b); } }
進(jìn)行比較
public class FloatTest { public static void main(String[] args){ double a = 6.9; double b = 3.0; System.out.println( a / b); // 如果在比較時(shí),使用 == System.out.println( 2.3 == (a / b)); } }
解決辦法 -- 通常情況
使用做差法比較結(jié)果是否小于一個(gè)極小的數(shù)。如果小于規(guī)定的極小數(shù),我們就認(rèn)為他們是相等的。
例子:
public class FloatTest { public static void main(String[] args){ double a = 6.9; double b = 3.0; System.out.println( a / b); // 在這里我們規(guī)定極小數(shù)為 0.000000001 double c = 0.1E-8; // 將 a / b 的結(jié)果與比較的數(shù) 2.3 進(jìn)行做差, 如果差值小于極小值就是相等。 if( (a / b) - 2.3 < c) { System.out.println( "a / b 的結(jié)果 與 2.3 相等" ); } } }
到此這篇關(guān)于Java判斷兩個(gè)浮點(diǎn)數(shù)相等的文章就介紹到這了,更多相關(guān)Java 浮點(diǎn)數(shù)相等內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用Netty+SpringBoot實(shí)現(xiàn)定時(shí)后端向前端推送數(shù)據(jù)
這篇文章主要介紹了BIO、NIO、AIO三種Java?IO模型,并探討了如何使用Spring?Boot集成Netty實(shí)現(xiàn)后臺(tái)向前端推送信息的功能,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-01-01Java實(shí)現(xiàn)批量向mysql寫入數(shù)據(jù)的方法
這篇文章主要介紹了Java實(shí)現(xiàn)批量向mysql寫入數(shù)據(jù)的方法,涉及java基于JDBC連接mysql數(shù)據(jù)庫及寫入數(shù)據(jù)的相關(guān)操作技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2017-12-12解決Spring Boot 多模塊注入訪問不到j(luò)ar包中的Bean問題
這篇文章主要介紹了解決Spring Boot 多模塊注入訪問不到j(luò)ar包中的Bean問題。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-09-09使用WebMvcConfigurer配置SpringMVC過程
WebMvcConfigurer配置類用于Java代碼配置SpringMvc,實(shí)現(xiàn)該接口或繼承WebMvcConfigurationSupport類,常用方法:addInterceptors(攔截器)、addViewControllers(視圖控制器)等2024-12-12Java中documentHelper解析xml獲取想要的數(shù)據(jù)
本文主要介紹了Java中documentHelper解析xml獲取想要的數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02Java實(shí)現(xiàn)發(fā)送HTML內(nèi)容并帶附件的電子郵件
這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)發(fā)送HTML內(nèi)容并帶附件的電子郵件,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下2025-01-01