如何将十进制输出舍入到两个位置?

时间:2013-12-17 16:54:10

标签: java android formatting decimal

在这个程序中,我将类型double的计算值打印到屏幕上。但是目前计算给出了14位小数。我的问题是,是否有一个Java设施来包装输出语句可以指定小数位数?例如round(mark1,2)

enter image description here

目前的印刷方式是这样的:

 double markOne = intent.getDoubleExtra("number1", 0);
 result1.setText(String.valueOf(markOne)+"mm");

是否可以将setText包装在Java方法中,或者我是否必须创建自定义格式?有人能用我的代码给我一个例子吗?感谢

3 个答案:

答案 0 :(得分:9)

您可以使用小数格式器

DecimalFormat df = new DecimalFormat("#.##");
System.out.print(df.format(d));

答案 1 :(得分:2)

我认为最好使用BigDecimal类型而不是Double。 你可以做到

BigDecimal myValue= new BigDecimal(12.3577);
  myValue= myValue.setScale(2, BigDecimal.ROUND_HALF_UP);

myValue将是12.36

我希望这会有所帮助

答案 2 :(得分:0)

试试这个:

  int decimalPlaces = 2;
    markOne = double(int(markOne*Math.pow(10, decimalPlaces)))/Math.pow(10, decimalPlaces);