How to convert hexadecimal string to float in Java?

How to convert a hexadecimal string to a single floating point in Java?

For example, how to implement:

float f = HexStringToFloat ("BF800000"); // f should now contain -1.0

I ask about this because I tried:

float f = (float)(-1.0); String s = String.format("%08x", Float.floatToRawIntBits(f)); f = Float.intBitsToFloat(Integer.valueOf(s,16).intValue()); 

But I get the following exception:

java.lang.NumberFormatException: for input line: "bf800000"

+6
java string floating-point hex
source share
2 answers
 public class Test { public static void main (String[] args) { String myString = "BF800000"; Long i = Long.parseLong(myString, 16); Float f = Float.intBitsToFloat(i.intValue()); System.out.println(f); System.out.println(Integer.toHexString(Float.floatToIntBits(f))); } } 
+16
source share

You need to convert the hex value to int (left as an exercise) and then use Float.intBitsToFloat(int)

+2
source share

All Articles