如何在Android中打印两位小数的双精度字符?
也许这是一个愚蠢的问题,但如果它没有创建方法,我猜不出如何解决它。也许有一种“自然的方式”可以做到这一点,比如在C语言中。问题是: 我有一个变量:如何在Android中打印两位小数的双精度字符?,android,format,double,show,settext,Android,Format,Double,Show,Settext,也许这是一个愚蠢的问题,但如果它没有创建方法,我猜不出如何解决它。也许有一种“自然的方式”可以做到这一点,比如在C语言中。问题是: 我有一个变量: double a; 我只想用2或3个小数来表示。当我试图展示它时: Text.setText("Value of a: " + String.valueOf(a)); 它给出了类似于: a值:5.234966145 我只想 a值:5.23 不改变a的实数,因此它显示近似数,但与实数一起使用。您可以使用a,或String.format(“%.2f”
double a;
我只想用2或3个小数来表示。当我试图展示它时:
Text.setText("Value of a: " + String.valueOf(a));
它给出了类似于:
a值:5.234966145
我只想
a值:5.23
不改变a的实数,因此它显示近似数,但与实数一起使用。您可以使用a,或String.format(“%.2f”,a)代码>使用此代码:
yourTextView.setText(String.format("Value of a: %.2f", a));
DecimalFormat form = new DecimalFormat("0.00");
etToll.setText(form.format(tvTotalAmount) );
注意:数据必须为十进制格式(tvTotalAmount)
及
…在欧洲语言环境中导致“NumberFormatException”错误,因为它将结果设置为逗号而不是小数点-当textView添加到editText中的数字时,会发生错误。
这两种解决方案在美国和英国的语言环境中都运行良好。在使用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("#.##");
DecimalFormat formater = new DecimalFormat("0.00");
您的代码显示四舍五入的值。例如,它通过调用precision.format(2.81666666)来显示2.82…这是所需的行为,不是吗?这将把“0”格式化为“.00”。相反,使用new DecimalFormat(“0.00”)
将“0”显示为“0.00”doubleNumber.toString()。子字符串(0,3)会发出警告:“隐式使用默认区域设置是常见的错误源:使用String.format(locale,…)而不是”@AndreKR这是因为在不同的国家使用了变量符号。即使指定了正确的格式,如果以后解析它,也必须执行相同的操作。如果您不这样做,那根本没关系,因为它使用设备的系统设置,您无论如何都应该使用。
DecimalFormat formater = new DecimalFormat("0.00");