2014-01-18 4 views
-1

Я искал приличную сумму, но не получил ответа на преобразование шестнадцатеричной строки (это не целое число), например 0x11.11 или 0x1p3 в ее десятичную форму в Java (float или double) без выполнения этого вручную. Любой ответ?Преобразование Hex double/float в Decimal double/float в Java

+0

Вы вводите их таким образом в исходный код, как 'double d = 0x11.11;', или в каком формате вы их получаете и в каком формате они вам нужны? – zapl

+0

Извините, я должен был уточнить в OP, что я читаю шестнадцатеричные значения в строках – Riftus

+0

, пробовал ли вы, поддерживает ли 'Double.parseDouble (String) этот формат? – zapl

ответ

2

Double.valueOf() поддерживает это преобразование из String:

System.out.println(Double.valueOf("0x0.1p0")); 
System.out.println(Double.valueOf("0x11.11p0")); 
System.out.println(Double.valueOf("0x1p3")); 

Выход:

0,0625
17,06640625

Также стоит отметить, что 1,5 добавлена ​​поддержка для море s:

double d = 0x1p3; 
+0

Огромное спасибо! просто нужно было добавить суффикс «p» – Riftus

+0

Да, я думал, что это может быть проблемой ('p' требуется даже когда' 0'), но я не хотел предполагать. Рад, что смог помочь. –

Смежные вопросы