只显示小数点后两位

如何获得小数点后两位数的双精度值。

例如

如果

i=348842. double i2=i/60000; tv.setText(String.valueOf(i2)); 

这个代码生成5.81403333

但是我只想要5.81

那么我该怎么办?

使用DecimalFormat 。

DecimalFormat是NumberFormat的一个具体子类,用于格式化十进制数字。 它具有多种function,可以在任何语言环境中parsing和格式化数字,包括支持西方,阿拉伯和印度数字。 它还支持不同types的数字,包括整数(123),定点数(123.4),科学计数法(1.23E4),百分比(12%)和货币金额(123美元)。 所有这些都可以本地化。

代码片段

 double i2=i/60000; tv.setText(new DecimalFormat("##.##").format(i2)); 

输出

5.81

怎么样String.format("%.2f", i2)

在这里,我将向您展示如何让您的小数点不缩短,这里我将它缩短到小数点后的四位数。

  double value = 12.3457652133 value =Double.parseDouble(new DecimalFormat("##.####").format(value)); 

我认为最好的和最简单的解决scheme是(KISS):

 double i = 348842; double i2 = i/60000; float k = (float) Math.round(i2 * 100) / 100; 
 public class MathRound { public static void main(String[] args) { double number1 = 10.123456; double number2 = (int)Math.round(number1 * 100)/(double)100; System.out.println(number2); } } 
 i=348842. double i2=i/60000; DecimalFormat dtime = new DecimalFormat("#.##"); i2= Double.valueOf(dtime.format(time)); v.setText(String.valueOf(i2)); 

首先应该在开发人员头部popup,而将数字格式化为字符序列时应该注意这样的细节,例如是否可以颠倒操作。

而其他方面则是提供适当的结果。 所以你要截断这个数字或者把它舍掉。

所以在你开始之前,你应该问自己,我是否对价值感兴趣。

为了实现你的目标,你有多个选项,但其中大多数是指格式和格式化 ,但我只是build议看看这个答案 。