如何将十六进制字符串转换为双精度?

时间:2019-03-22 08:53:26

标签: java android string hex double

我从BLE到我的手机a的范围为0x0000到0x01c2的十六进制值为String。为了将其绘制在图形中,我必须将其转换为this method,为此我尝试了{{3}},但不幸的是,它对我的​​情况无济于事。

这是提供的链接中经过少许修改的代码:

double

任何进一步的帮助将不胜感激。预先感谢。

1 个答案:

答案 0 :(得分:1)

您的值不是IEEE-754浮点值的十六进制表示,而是一个整数。因此,在删除开头的“ 0x”前缀后,只需将其解析为整数即可:

public class Test {
    public static void main(String[] args) {
        String text = "0x009a";

        // Remove the leading "0x". You may want to add validation
        // that the string really does start with 0x
        String textWithoutPrefix = text.substring(2);
        short value = Short.parseShort(textWithoutPrefix, 16);
        System.out.println(value);
    }
}

如果您真的需要在其他地方使用double,则可以隐式转换:

short value = ...;
double valueAsDouble = value;

...但是除非您确实需要,否则我会尽量避免这样做。