2014-10-09 164 views
-6

我知道這裏已經有很多問題了。但是如果我需要比較兩個數字並且我不知道它們是什麼類型。這意味着其中一個可以是Float,另一個可以是Long。 JavaCore或Apache中是否有一些庫可以解決這個問題(不幸的是,NumberUtils缺少這種方法)?我一直在尋找幾個小時,但沒有成功。或者我應該用this之類的東西重新發明輪子。我只是不相信像Java這樣的高級語言沒有工具來比較2個數字。比較Java中的2個數字

+0

介意分享代碼? – 2014-10-09 16:17:19

+0

對象和數字都沒有可比性,只有對於可比對象才重載此運算符。或者用於原始類型。 – deathangel908 2014-10-09 16:19:19

+0

您可以嘗試獲取任何值(int,float,double)並將它們轉換爲任何數據類型,例如Float,然後使用您知道的數據類型 – 2014-10-09 16:19:20

回答

0

對兩個數字都可以使用doubleValue()方法,然後比較double值。

如果您需要更高的整數精度,您可以將其作爲特殊情況來實現。

如果您的對象不是數字實例(例如,包含「數字」的對象或字符串),那麼您應該丟棄所有代碼並誠實地從頭開始。

0

在進行比較之前,int會被轉換爲很長時間。原則上鑄會發生,就像

如果(A ==(長)B)

Java將投靈長類動物的類型適合你,只要它不涉及精度的損失。由於long可以保存int的所有值,因此會自動執行強制轉換,但如果要在int應該在的位置使用它,則必須顯式強制轉換(例如)long。編輯:將一個很長的「x」轉換爲一個int,使用: x =(int)x;

+0

如果我有Long 3l和Float 3.3f會怎麼樣?如果我將Fload投射到Long,它會評估3L = 3.3f – deathangel908 2014-10-09 19:57:45