关于java:如何在点之后将double转换为2?

how to convert double to 2 number after the dot?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Round a double to 2 significant figures after decimal point

如何在点后将双精度转换为2位数?

例如:

1
double x=123.45678;

我需要EDCOX1 0(在Java中用于Android)

提前谢谢


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


试试这个代码

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


用这个,

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

使用NumberFormat类正确设置数字格式。

具体来说,您可以执行以下操作。尽管这并不友好。

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


格式化double的最佳方法是使用numberFormat类:http://developer.android.com/reference/java/text/numberFormat.html

你会这样做的:

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

你也可以把它扔回一个双人房。


如果你想把两个数字正确地四舍五入,我会用bigdecimals:

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