关于格式:如何在Android中打印带有两位小数的双精度?

How to print a double with two decimals in Android?

本问题已经有最佳答案,请猛点这里访问。

也许这是一个愚蠢的问题,但如果它没有创造出一种方法,我猜不出如何解决它。也许有一种"自然的方法"可以做到这一点,比如在C语言中。问题是:

我有一个VAR:

1
double a;

我只想用2或3个小数来表示。当我试图展示它时:

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

它给出了如下信息:

Value of a: 5.234966145

我只想

Value of a: 5.23

不改变的实数,所以它显示近似数,但使用实数。


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

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


在使用decimalFormat之前,需要使用以下导入,否则代码将无法工作:

1
import java.text.DecimalFormat;

格式化代码为:

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


对于显示小数点后两位的数字,有两种可能-1)首先,您只想显示小数位数。例如-i)12.10显示为12.1,ii)12.00显示为12。然后使用-

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

2)其次,您希望显示小数位数而不考虑小数位数,例如-i)12.10将显示为12.10。ii)12显示为12.00。然后使用-

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


使用这一个:

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

注:数据必须为十进制格式(tvtotalamount)


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

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

…在欧洲的区域设置中导致"numberFormatException"错误,因为它将结果设置为逗号而不是小数点-在将textView添加到editText中的数字时发生错误。这两种解决方案在美国和英国的地区都非常有效。