如何在点后将双倍转换为2个数字?

时间:2011-09-14 11:42:50

标签: java android

  

可能重复:
  Round a double to 2 significant figures after decimal point

如何在点后将double转换为2?

例如:

double x=123.45678;

我需要x=123.45(在java for android中)

提前致谢

6 个答案:

答案 0 :(得分:34)

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

答案 1 :(得分:17)

试试这段代码

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

答案 2 :(得分:10)

使用此,

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

答案 3 :(得分:8)

使用NumberFormat类来正确格式化数字。

特别是在您的情况下,您可以执行以下操作。虽然这不是L10N友好的。

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

答案 4 :(得分: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);

你也可以把它重新演绎为双倍。

答案 5 :(得分:1)

如果你想要正确舍入两位数字,我会选择BigDecimals:

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