2009-06-23 3 views
3

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

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

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

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

Спасибо.

ответ

8

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

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

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

+1

Элегантный и совершенно функциональный. Большое спасибо!! – apalopohapa

Смежные вопросы