【发布时间】:2013-09-26 21:27:21
【问题描述】:
我似乎无法理解这一点。如果尝试过以下方法:
DecimalFormat df = new DecimalFormat("00000.00");
DecimalFormat df = new DecimalFormat("######.##");
但以下行总是会生成 IllegalArgumentException。
double price = Double.valueOf(df.format(((EditText) view
.findViewById(R.id.edit_item_price)).getText().toString()));
// Sample input passed is value of 200 or some other whole number.
item.setPrice(price);
这没有意义,因为我只是复制了这个论坛中明显的解决方案。你们中的大多数人都可以使用 format()。
最初,我没有这些代码行。我只是在获得商品价格后调用我的 setPrice() 方法。这行得通。但是,Double.valueOf() 有个讨厌的习惯,就是只使用一位小数。
例如通过了 200。我在项目对象中得到 200.0。我想通过使用 DecimalFormat 可以防止这种情况发生,但似乎这反而让我更头疼了。
【问题讨论】:
-
显然,这段代码作为一个独立的 java 应用程序工作。仅在与 android 应用程序一起使用时才会失败。
标签: android number-formatting decimalformat