我的应用程序执行一些基本的算术过程,然后将它们添加到中TextView
。因为我希望它们的结果显示为XX,XX,所以我用格式化了字符串%.2f
。现在,当我尝试检索此结果并将其用于另一个算术过程时,它给我一个错误:
java.lang.NumberFormatException: Invalid double: "8,86" (or any number for that matter)
如何使第二个进程从转换字符串TextView
而不会出现错误?
处理1
int newProductQuantity = Integer.valueOf(productQuantity.getText().toString());
double newProductPrice = Double.valueOf(productPrice.getText().toString());
double newProductVAT = Double.valueOf(productVat.getText().toString());
double newProductPriceSum = ((newProductPrice + (newProductPrice * (newProductVAT / 100))) * newProductQuantity);
String newProductPriceSumTexta = String.format("%.2f", newProductPriceSum);
productPriceSum.setText(newProductPriceSumTexta);
过程2
double newOrderFinalLastSum = Double.parseDouble(newOrderFinalSum.getText().toString());
double newOrderFinalNewSum = Double.parseDouble(productPriceSum.getText().toString());
double newOrderFinalOmegaSum = newOrderFinalLastSum + newOrderFinalNewSum; //error is here
String newOrderFinalOmegaSumText = String.format("%.2f", newOrderFinalOmegaSum);
newOrderFinalSum.setText(newOrderFinalOmegaSumText);
您的问题Locale
有关。如果始终希望将点.
作为分隔符,则应指定一个Locale
使用它的分隔符。您可以使用format
将Locale
对象作为第一个参数的方法。例如
String.format(Locale.UK,...
从文档 public static String format(Locale l, String format, Object... args)
使用指定的语言环境,格式字符串和参数返回格式化的字符串。
在哪里
l-格式化期间要应用的语言环境。如果l为null,则不应用任何本地化。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句