如何在Android中打印一个有两位小数的double?

也许这是一个愚蠢的问题,但我不能猜测如果不创build一个方法如何解决它。 也许有一个“自然的方法”来做到这一点,例如在C中。 这是问题:

我有一个变种:

double a; 

我只想用2或3位小数显示它。 当我试图展示它:

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

它给出了这样的东西:

a的值:5.234966145

而我只想要

值的一个:5.23

不改变一个真实的价值,所以它显示了近似的数字,但与实际的数字。

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

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

在使用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)); 

对于显示数字最多两位小数,有两种可能性 – 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"); 

使用这个:

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

警告:数据必须是十进制格式(tvTotalAmount)

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

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

…在欧洲的语言环境中导致“NumberFormatException”错误,因为它将结果设置为逗号而不是点十进制 – 在editText中将textView添加到数字时发生错误。 这两种解决scheme在美国和英国的地区都非常出色。