Как я могу переместить строковое представление float по левому краю?

StackOverflow https://stackoverflow.com/questions/1034812

Вопрос

Я пытаюсь преобразовать число с плавающей запятой одинарной точности в ascii-представление четырех составляющих его байтов (знак / экспонента / мантисса).Мой текущий код таков:

Integer.toString(Float.floatToRawIntBits(f),16);

Float.floatToRawIntBits создает целое число, используя те же байты, а затем Integer.toString создает цифры ascii в шестнадцатеричной форме (следовательно, указан радиус = 16).Моя проблема в том, что мне всегда нужно 8 символов ascii плюс необязательный знак '-', и Integer.toString не заполняется нулями с левой стороны.

Кто-нибудь может предложить элегантное решение?

Спасибо.

Это было полезно?

Решение

Вы можете использовать String.format() Строка.формат():

String.format("%08x", Float.floatToRawIntBits(f))

Это приведет к обнулению результата и форматированию его в виде шестнадцатеричного числа.Подробную информацию о строках формата можно найти здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top