如何在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在美国和英国的地区都非常出色。