форматирование и преобразование в Java - PullRequest
0 голосов
/ 27 марта 2010

У меня есть несколько небольших базовых проблем:

Как отформатировать:

int i = 456;

для вывода:

""00000456"

? Я пробовал% 08d, но он не работает. Следующая вещь - проблема с преобразованием и затем форматированием. У меня есть сторона и высота треугольника, скажем, int 4,7, а 7 это высота. Из формулы для поля мы знаем, что F = 1/2 (a * h). Так как же получить F как float, с точностью до 10 мест?

float f = a*h;

отлично работает, но умножение на 0,5 дает ошибку, а на 1/2 возвращает 0.

Ответы [ 5 ]

2 голосов
/ 27 марта 2010

Используйте класс NumberFormat, см. это или , то объяснение, класс Formatter или String.format

0 голосов
/ 28 марта 2010

Ответом было использование String.format.

    String fs = String.format("%08d", this.id);
    return fs;
0 голосов
/ 27 марта 2010

Должно быть %.08d вместо %08d, во-вторых, попробуйте умножить на 0.5f вместо.

0 голосов
/ 27 марта 2010

1/2 является целочисленным выражением, оно не будет автоматически преобразовано в число с плавающей точкой.

1/2 должно быть одним из: 1.0f / 2.0f, 1.0f / 2, 1 / 2.0f, (float) 1 / (float) 2, (float) 1/2, 1 / (float) 2, переменная типа float / переменная типа float, переменная типа float / переменная типа int, переменная типа int / переменная типа float,... вы поняли

0 голосов
/ 27 марта 2010

Как отформатировать:

int i = 456; дать вывод:

"00000456"

System.out.printf ("% 08d", i) может выполнить эту работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...