Come posso pad sinistro la rappresentazione di stringa di un float?
-
06-07-2019 - |
Domanda
Sto cercando di convertire un singolo numero in virgola mobile di precisione in una rappresentazione ASCII dei quattro byte che lo compongono (segno / esponente / mantissa). Il mio codice attuale è:
Integer.toString(Float.floatToRawIntBits(f),16);
Float.floatToRawIntBits
crea un numero intero usando gli stessi byte, quindi Integer.toString
crea le cifre ASCII in forma esadecimale (da cui il radix = 16 specificato). Il mio problema è che ho sempre bisogno di 8 caratteri ASCII più il segno '-' opzionale e Integer.toString
non è riempito con zero sul lato sinistro.
Qualcuno può trovare una soluzione elegante?
Grazie.
Soluzione
Puoi usare String.format () :
String.format("%08x", Float.floatToRawIntBits(f))
Questo azzererà il risultato e lo formatterà come un numero esadecimale. I dettagli sulle stringhe di formato sono disponibili qui .