【问题标题】:Comparing a Hex String with a Double [duplicate]将十六进制字符串与双精度字符串进行比较 [重复]
【发布时间】:2021-12-11 12:49:43
【问题描述】:

我正在尝试在条件语句中将十六进制字符串与 Double 进行比较。我已经从字节数组转换了十六进制字符串。

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 {
...

它只是说操作符'

感谢您的帮助

【问题讨论】:

  • 你有什么问题?
  • 但我仍然遇到问题 - 告诉我们你的问题 Matthew
  • 表示操作符 '
  • 我正在写我的 BigDecimals,比如... BigDecimal a = new BigDecimal(hexString); BigDecimal b = new BigDecimal(x);

标签: java hex bigdecimal


【解决方案1】:

BigDecimal 不是原语,因此您不能使用 '

if (a.compareTo(b) < 0) {
  ....
 }

见:https://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#compareTo(java.math.BigDecimal)

【讨论】:

  • 我明白了,谢谢
猜你喜欢
  • 1970-01-01
  • 2013-05-24
  • 1970-01-01
  • 2014-05-05
  • 1970-01-01
  • 2019-08-13
  • 2019-08-31
  • 2021-07-10
  • 1970-01-01
相关资源
最近更新 更多