2012-03-24 20 views
2

これは一種の新しい質問ですが、私はプログラミングが本当に新しいので、11年生のプログラミングコースには1週間以上しかかかりません。 Javaを使用し、Netbeansで作業します。私は今働いている何double&Java.lang.Stringの問題点 - テキストフィールド

はこれです:店での特別セール期間中

、10%の割引は$ 10.00以上 購入の取り出されます。

ユーザーに の購入金額を入力するように促すアプリケーションを作成してから、割引価格、さらに 割引額を返します。

マイコード:

DecimalFormat x = new DecimalFormat ("$###.00"); 
double purchases, discount, finalPrice; 
purchases = Double.parseDouble (purchaseInput.getText()); 
if (purchases >= 10) { 
    discount = purchases * 0.10; 
}  
else { 
    discount = 0; 
} 
finalPrice = purchases - discount; 
discountOutput.setText (discount); 
finalPriceOutput.setText (finalPrice); 

問題は、最後の2行です。値をテキストフィールドに設定しようとしています。それは二重を見つけるが、java.lang.Stringを必要としていると言います。私はdouble.toString()で文字列に変更しようとしましたが、ダブルは参照解除できないと言います。私はかなり混乱しています。助けてください。

私は今までに2回学習したすべてのコンテンツセクションを見てきましたが、私の問題を解決する方法は見つけられません。

+0

ようこそ。これが宿題であることを示すために「宿題」タグを付け加えました。将来はこのことを念頭に置いてください。 – home

+0

将来的に読みやすいようにコードをインデントしてください。また、属性、パラメータ、変数には大文字を使用しないでください。これは規約に過ぎませんが、外部コードを読むときは非常に便利です。大文字はクラス名のために制限されているため、コンストラクタです。 Markdown-editing-helpを見て、右上のすべての主要な編集ボックスで見つけてください。歓迎してください。 –

答えて

2

ダブルスを文字列に変換するには、既にDecimalFormatがあります。だから、これを試してみてください。

DiscountOutput.setText(x.format(Discount)); 
FinalPriceOutput.setText(x.format(FinalPrice)); 

あなたはまたDecimalFormatを使用せずにそれを行うことができますが、数字は次のようにフォーマットされていないので、結果は若干異なります「$ ### 00。」:

DiscountOutput.setText(Discount.toString()); 
FinalPriceOutput.setText(FinalPrice.toString()); 

また、「$#,##0.00」を使用すると、提案として、私はお金の量がよく見えると思います。あなたは桁区切り記号(、)を持っていて、$ .51の代わりに$ 0.51のように表示され、奇妙に見えます。そう:

DecimalFormat x = new DecimalFormat ("$#,##0.00"); 
+0

ありがとうございます。私は10進形式が文字列に二重に変換されたことを今まで知ったとは思わないので、知っておくと便利です。これは私の問題を完全に解決しました。あなたの助けを借りて、初心者の質問に笑っていないためにありがとう。 – IceMage88

2

はこれを書く:

DiscountOutput.setText(Double.toString(Discount)); 
FinalPriceOutput.setText(Double.toString(FinalPrice)); 

また、Javaですべての変数は、小文字で始める必要があることを覚えておいてください。あなたの変数を宣言するための標準的な方法は次のようになります。

double purchases, discount, finalPrice; 
+0

あなたの答えをありがとう、私は変数が小文字で始まるはずだったことを覚えていなかった、ありがとう。 – IceMage88

+0

@ IceMage88あなたが歓迎しています:)この回答が何らかの形で役に立つと思われる場合は、アップルボードを検討してください –

1

のTextFieldのSetTextメソッドは、常に唯一の文字列を受け付けます。したがって、String.valueOf()を実行する必要があります。

DiscountOutput.setText(String.valueOf(Discount)); 
FinalPriceOutput.setText(String.valueOf(FinalPrice)); 
+0

私は誰かの回答を選んだのですが、ありがとうございました。 – IceMage88

+0

OK。問題ない。ありがとう – kandarp