我試圖在條件陳述句中將十六進制字串與雙精度進行比較。我已經從位元組陣列轉換了十六進制字串。
double x = (Math.pow(2, 256));
byte[] h = null;
...
String hexString = bytesToHex(h); //converts byte array to hex string
double doubleValueOfHex = Double.valueOf(hexString); //convert hex string to double
然后我想做這樣的事情......
if (doubleValueOfHex < x) {
...
} else {
...
我已經嘗試將它們都轉換為,BigDecimal但我仍然遇到問題,
舉例來說,如果我轉換x,并hexString為BigDecimal
BigDecimal a = new BigDecimal(hexString);
BigDecimal b = new BigDecimal(x);
if (a < b) {
...
} else {
...
它僅表示引數型別的運算子“<”未定義
謝謝您的幫助
uj5u.com熱心網友回復:
BigDecimals 不是原語,因此您不能使用“<”,但它們實作了 Comparable 介面。所以你的代碼應該是這樣的:
if (a.compareTo(b) < 0) {
....
}
請參閱:https : //docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#compareTo(java.math.BigDecimal)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/336695.html
標籤:爪哇
