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

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

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

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

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

Спасибо.


person apalopohapa    schedule 23.06.2009    source источник


Ответы (1)


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

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

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

person Joey    schedule 23.06.2009
comment
Элегантный и совершенно функциональный. Большое спасибо!! - person apalopohapa; 24.06.2009