Wie konvertiert man hexadezimale Zeichenketten in Fließkommazahlen einfacher Genauigkeit in Java?Wie konvertiert man die hexadezimale Zeichenfolge in Float in Java?
Zum Beispiel, wie zu implementieren:
float f = HexStringToFloat ("BF800000"); // f jetzt -1,0
enthalten sollte ich frage das, weil ich versucht habe:
float f = (float)(-1.0);
String s = String.format("%08x", Float.floatToRawIntBits(f));
f = Float.intBitsToFloat(Integer.valueOf(s,16).intValue());
Aber ich bekomme die folgende Ausnahme:
java.lang.NumberFormatException: Für die Eingabe-Stichwort: „bf800000 "
ich: java.lang.NumberFormatException: Für die Eingabe-Stichwort: "BF800000" – apalopohapa
Wenn der Test: Float.intBitsToFloat (Integer.valueOf ("BF800000", 16) .intValue()); Ich bekomme die Ausnahme: java.lang.NumberFormatException: Für Eingabezeichenfolge: "BF800000" – apalopohapa
Es ist ein int überläuft. Wenn Sie es auf Long.valueOf (myString, 16) umstellen, wird die Ausnahme nicht ausgelöst, sondern es wird -1.0 statt 10.0 angezeigt. Sind Sie sicher, dass 10.0 das richtige Ergebnis ist? –