私はこれについて頭をつかむことができないようです。次のアプローチを試した場合:
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() には、小数点以下 1 桁しか使用しないという厄介な癖があります。
たとえば、200 を渡しました。アイテム オブジェクト内で 200.0 を取得します。私は DecimalFormat を使用することでこれを防ぐことができたと考えましたが、代わりにこれがより多くの頭痛の種になったようです。