Вы должны иметь возможность форматировать, используя что-то вроде:
Stringstr= String.format("%2.02f", percentage);
Ответ 2
Если вы используете int значения, использование double может быть лучшим выбором и иметь меньшую ошибку округления. float может представлять int значения без ошибок до ~ 16 миллионов. double может точно представлять все int значения.
здесь и dividend , и divisor имеют тип int, что означает, что они допускают только целочисленные значения, и ответом такого уравнения всегда будет целочисленный литерал.
если я нарушу это, это будет что-то вроде приведенного ниже
(double)(500/1500)
Согласно фактическому вычислению, 500/1500 даст вам 0.33333, но компилятор преобразует это в целочисленный литерал, потому что оба операнда имеют тип int
(double)(0)
Компилятор получает инструкцию преобразовать это 0 значение в double, чтобы вы получили 0.0 в результате
0.0
а затем вы можете изменить результат в любой формат, как предложил @Zach Janicki.
имейте в виду, что если оба операнда одного типа, то результат тоже будет одного типа.
Ответ 4
Целочисленное деление (которое включает long, short, byte, char, int) в Java всегда возвращает int (или long, если один из параметров имеет значение long) с округлением до нуля. Ваше преобразование происходит после этого вычисления.
(На вопрос о форматировании уже дан ответ в других ответах - в качестве альтернативы вы также можете взглянуть на java.text.NumberFormat , особенно java.text.DecimalFormat.)