Как преобразовать double в 2 числа после точки? Возможный дубликат: Радиус удвоения до 2 значащих цифр после десятичной точки как преобразовать double в 2 числа после точки? например: double x=123.45678; Мне нужно, чтобы x=123.45 (в java для android) заблаговременно Ответ 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());
Ответ 2 попробуйте этот код double x=123.45678; DecimalFormat df = new DecimalFormat("#.##"); String dx=df.format(x); x=Double.valueOf(dx);
Ответ 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());