如何在Android中打印带有两位小数的双精度?

时间:2011-11-09 12:35:49

标签: android format double show settext

也许这是一个愚蠢的问题,但如果没有创建方法,我无法猜测如何解决它。也许有一种“自然的方式”来做,例如在C中。这是问题所在:

我有一个var:

double a;

我希望只显示2或3位小数。当我试图展示它时:

Text.setText("Value of a: " + String.valueOf(a));

它提供了类似的内容:

  

a的值:5.234966145

我想要

  

a的值:5.23

在不更改a的实际值的情况下,它会显示近似数字,但与实数一起使用。

6 个答案:

答案 0 :(得分:188)

yourTextView.setText(String.format("Value of a: %.2f", a));

答案 1 :(得分:40)

您可以使用DecimalFormatString.format("%.2f", a);

答案 2 :(得分:26)

在使用DecimalFormat之前,您需要使用以下导入,否则您的代码将无效:

import java.text.DecimalFormat;

格式化代码为:

DecimalFormat precision = new DecimalFormat("0.00"); 
// dblVariable is a number variable and not a String in this case
txtTextField.setText(precision.format(dblVariable));

答案 3 :(得分:22)

对于显示最多两位小数的数字,有两种可能性 - 1)首先,你只想显示十进制数字。 例如 - i)12.10显示为12.1,ii)12.00显示为12.然后使用 -

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

2)其次,您想要显示十进制数字而不管十进制数目如何例如-i)12.10显示为12.10。 ii)12显示为12.00。然后使用 -

DecimalFormat formater = new DecimalFormat("#.00"); 

答案 4 :(得分:13)

使用这个:

DecimalFormat form = new DecimalFormat("0.00");
etToll.setText(form.format(tvTotalAmount) );

注意:数据必须采用十进制格式(tvTotalAmount)

答案 5 :(得分:5)

textView2.setText(String.format("%.2f", result));

DecimalFormat form = new DecimalFormat("0.00");
         textView2.setText(form.format(result) );

...原因" NumberFormatException"欧洲语言环境中的错误,因为它将结果设置为逗号而不是小数点 - 将textView添加到editText中的数字时会发生错误。 这两种解决方案在美国和英国都非常出色。