В Java я хочу сделать 102% 100 и получить остаток как 02, а не как 2 .. Как мне это сделать? - PullRequest
1 голос
/ 12 декабря 2011

В java я хочу сделать 102% 100 и получить остаток как 02, а не как 2 .. Как мне это сделать?

int a = (102% 100);

a возвращает 2, а не 02 .. Я хочу получить 02 .. потому что изначально он должен быть 1.02, но мод возвращает 2. :( Кто-нибудь знает, как это сделать?

Ответы [ 4 ]

5 голосов
/ 12 декабря 2011

2 и 02 - это одно и то же число.

Поскольку вы используете это, чтобы найти первые два числа после десятичной точки, просто добавьте любые однозначные числа с помощью 0,Если вы хотите, чтобы все числа после десятичной точки, более обычный способ сделать это:

//Strip all numbers before decimal-point
double decimalDigits = myNumber - (int)myNumber;
3 голосов
/ 12 декабря 2011

NumberFormat , вероятно, лучший путь.String.format и выполнение вычислений также работают, но, поскольку вы форматируете число, можно также использовать средство форматирования чисел.

Пример.Я немного догадываюсь о ваших требованиях (например, что должно вернуть 110% 100, или вы ожидаете только однозначный остаток?):

NumberFormat formatter = new DecimalFormat("'0'#");
int remainder = 102%100;
System.out.println(formatter.format(remainder));
1 голос
/ 12 декабря 2011

Как целые числа, они представляют собой одно и то же число. Используйте следующее для форматирования числа в виде строки для отображения:

int a = 102 / 100;
int r = 102 % 100;
System.out.print(a + "." + String.format("%02d", r));

Выход:

1.02
0 голосов
/ 12 декабря 2011

Здесь лежит ответ на заполнение чисел нулями: Добавить лидирующие нули к числу в Java?

Правда, вот и все.

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