如何获得小数点后只有两位数的双精度值。
例如
如果
i=348842.
double i2=i/60000;
tv.setText(String.valueOf(i2));
此代码生成5.81403333
。
但我只想要5.81
.
那我该怎么办?
如何获得小数点后只有两位数的双精度值。
例如
如果
i=348842.
double i2=i/60000;
tv.setText(String.valueOf(i2));
此代码生成5.81403333
。
但我只想要5.81
.
那我该怎么办?
DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数。它具有多种功能,旨在使在任何语言环境中解析和格式化数字成为可能,包括对西方、阿拉伯和印度数字的支持。它还支持不同类型的数字,包括整数 (123)、定点数 (123.4)、科学计数法 (1.23E4)、百分比 (12%) 和货币金额 ($123)。所有这些都可以本地化。
代码片段-
double i2=i/60000;
tv.setText(new DecimalFormat("##.##").format(i2));
输出-
5.81
怎么样String.format("%.2f", i2)
?
在这里,我将向您展示如何使您的十进制数变短。在这里,我将把它缩短到小数点后的 4 个值。
double value = 12.3457652133
value =Double.parseDouble(new DecimalFormat("##.####").format(value));
许多其他答案只做格式化。这种方法将返回值,而不仅仅是打印格式。
double number1 = 10.123456;
double number2 = (int)(Math.round(number1 * 100))/100.0;
System.out.println(number2);
我认为最好和最简单的解决方案是(KISS):
double i = 348842;
double i2 = i/60000;
float k = (float) Math.round(i2 * 100) / 100;
i=348842.
double i2=i/60000;
DecimalFormat dtime = new DecimalFormat("#.##");
i2= Double.valueOf(dtime.format(time));
v.setText(String.valueOf(i2));