1

可能重复:
如何在 java 中格式化数字?
String.format() 在java中格式化double

我希望能够从 double 变量(称为 double)中获取输出,并将其与一些字符串文本(称为 outputPref,仅包含“cubic mm”)一起放入 TextView 中,如下所示

displayAnswer.setText(volume + " " + outputPref);

这很好用,但是,数字在 TextView 中显示为完整的双精度数(有很多小数位)。我希望用逗号将数以千计(如果有的话)显示为小数点后一位,例如 Excel 数字格式 " (* #,##0.0 ); (* (#,##0.0); (* " -"?? ); (@_)",或者简单地说(假设我不会有任何负数)“#,##0.0”

在将音量加倍变量应用于 TextView 之前,我应该使用什么函数来重新配置它?

4

5 回答 5

4
String.format("%1$,.2f", myDouble);
于 2012-10-08T13:47:47.257 回答
2

用这个

NumberFormat format = NumberFormat.getInstance();
        format.setMaximumFractionDigits(1);
displayAnswer.setText(format.format(volume)+ " "+outputPref);
于 2012-10-08T13:46:56.010 回答
1

您可以将双数四舍五入以在 TextView 中显示它:

double roundTwoDecimals(double d) {
            DecimalFormat twoDForm = new DecimalFormat("#.##");
        return Double.valueOf(twoDForm.format(d));
}
于 2012-10-08T13:45:53.590 回答
0

您可以使用以下方法设置小数位:

DecimalFormat df = new DecimalFormat("#.#");

这将在整数后给出一位小数,因为小数位后有一个 # 符号。

然后做:

df.format(yourDoubleHere);
于 2012-10-08T13:48:49.220 回答
0

我希望它会帮助你

rountdoubel=Maths.round(outputPref)

displayAnswer.setText(volume + " " + rountdoubel);
于 2012-10-08T13:49:11.907 回答