Подтвердить что ты не робот

Как преобразовать double в 2 числа после точки?

Возможный дубликат:
Радиус удвоения до 2 значащих цифр после десятичной точки

как преобразовать double в 2 числа после точки?

например:

double x=123.45678;

Мне нужно, чтобы x=123.45 (в java для android)

заблаговременно

4b9b3361

Ответ 1

x = Math.floor(x * 100) / 100;

Ответ 2

попробуйте этот код

double x=123.45678;
DecimalFormat df = new DecimalFormat("#.##");
String dx=df.format(x);
x=Double.valueOf(dx);

Ответ 3

используйте это,

  NumberFormat formatter = new DecimalFormat("#0.00");
 x=formatter.format(x);

Ответ 4

Используйте NumberFormat класс для правильного форматирования чисел.

В частности, в вашем случае вы можете сделать следующее. Хотя это не верно для L10N.

mNumberFormat = NumberFormat.getInstance();
mNumberFormat.setMinimumFractionDigits(2);
mNumberFormat.setMaximumFractionDigits(2);

Ответ 5

Лучший способ форматировать double - это класс NumberFormat: http://developer.android.com/reference/java/text/NumberFormat.html

Вы будете делать что-то вроде этого:

NumberFormat nf = NumberFormat.getInstance(); // get instance
nf.setMaximumFractionDigits(2); // set decimal places
String s = nf.format(x);

Вы также можете вернуть его в двойное.

Ответ 6

Если вы хотите, чтобы две цифры были правильно округлены, я бы пошел с BigDecimals:

        BigDecimal bd = new BigDecimal(x);
        System.out.println(bd.setScale(2,BigDecimal.ROUND_HALF_EVEN).toPlainString());