¿Cómo puedo dejar la representación de cadena de un flotador?
-
06-07-2019 - |
Pregunta
Estoy tratando de convertir un solo número de coma flotante de precisión en una representación ascii de los cuatro bytes que lo hacen (signo / exponente / mantisa). Mi código actual es:
Integer.toString(Float.floatToRawIntBits(f),16);
Float.floatToRawIntBits
crea un número entero usando los mismos bytes, y luego Integer.toString
crea los dígitos ascii en forma hexadecimal (de ahí que se especifique radix = 16). Mi problema es que siempre necesito 8 caracteres ascii más el signo '-' opcional, y Integer.toString
no se rellena con ceros del lado izquierdo.
¿Alguien puede llegar a una solución elegante?
Gracias.
Solución
Puede usar String.format () :
String.format("%08x", Float.floatToRawIntBits(f))
Esto pondrá a cero el resultado y lo formateará como un número hexadecimal. Los detalles sobre las cadenas de formato se pueden encontrar aquí .