Como posso deixar de lado a representação da string de um flutuador?
-
06-07-2019 - |
Pergunta
Estou tentando converter um único número de ponto flutuante de precisão em uma representação ASCII dos quatro bytes que o fazem (signo/exponente/mantissa). Meu código atual é:
Integer.toString(Float.floatToRawIntBits(f),16);
Float.floatToRawIntBits
faz um número inteiro usando os mesmos bytes e depois Integer.toString
Cria os dígitos ASCII na forma hexadecimal (daí o radix = 16 especificado). Meu problema é que eu sempre preciso de 8 caracteres ASCII mais o sinal opcional '-' e Integer.toString
não está preenchendo com zeros do lado esquerdo.
Alguém pode criar uma solução elegante?
Obrigado.
Solução
Você pode usar String.Format ():
String.format("%08x", Float.floatToRawIntBits(f))
Isso zero-pad do resultado e o formará como um número hexadecimal. Detalhes sobre seqüências de formato podem ser encontrados aqui.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow