Ответ 1
x = Math.floor(x * 100) / 100;
Возможный дубликат:
Радиус удвоения до 2 значащих цифр после десятичной точки
как преобразовать double в 2 числа после точки?
например:
double x=123.45678;
Мне нужно, чтобы x=123.45
(в java для android)
заблаговременно
x = Math.floor(x * 100) / 100;
попробуйте этот код
double x=123.45678;
DecimalFormat df = new DecimalFormat("#.##");
String dx=df.format(x);
x=Double.valueOf(dx);
используйте это,
NumberFormat formatter = new DecimalFormat("#0.00");
x=formatter.format(x);
Используйте NumberFormat класс для правильного форматирования чисел.
В частности, в вашем случае вы можете сделать следующее. Хотя это не верно для L10N.
mNumberFormat = NumberFormat.getInstance();
mNumberFormat.setMinimumFractionDigits(2);
mNumberFormat.setMaximumFractionDigits(2);
Лучший способ форматировать 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);
Вы также можете вернуть его в двойное.
Если вы хотите, чтобы две цифры были правильно округлены, я бы пошел с BigDecimals:
BigDecimal bd = new BigDecimal(x);
System.out.println(bd.setScale(2,BigDecimal.ROUND_HALF_EVEN).toPlainString());