Как я могу переместить строковое представление float по левому краю?
-
06-07-2019 - |
Вопрос
Я пытаюсь преобразовать число с плавающей запятой одинарной точности в 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))
Это приведет к обнулению результата и форматированию его в виде шестнадцатеричного числа.Подробную информацию о строках формата можно найти здесь.