0

ユーザーがアイテムの原価と数量を入力したときに、レジシステムがアイテムの合計を計算するようにしたいという私の割り当てについて、このアイデアがあります。

それは機能しているように見えましたが、私の主な問題を引き起こしました.10回のトランザクションの後にユーザーに文字「T」を入力させて、その日の合計売上高を調べたかったのです。

計算などで BigDecimal 数学クラスで for ループを使用しようとしました。計算内の「valueOf」という単語にエラーがあり、Eclipse は値を「long」に変更しようとし続けます。それは正しくないと確信しています。 .

私の説明は驚くべきものではないので、私が書いたコードを提供し、エラーが発生した場所の横にコメントを配置します..

 try{
    Scanner in = new Scanner (System.in);       
    String t = "T";
    int count;

    for (count = 1;count<=10;count++){
           System.out.println("\n\nValue of Item " + count + " :");
       BigDecimal itemPrice = in.nextBigDecimal();
       System.out.println("Quantity of item " + count + " :");
       BigDecimal itemQuantity = in.nextBigDecimal();
       BigDecimal itemTotal = (BigDecimal.valueOf(itemPrice).multiply // error here
                                  (BigDecimal.valueOf(itemQuantity))); // error here
           System.out.println("\nTotal for item(s): £" + itemTotal); 
       count++;

           while (t == "T"){
       BigDecimal amountOfItems = (BigDecimal.valueOf(itemTotal).divide // error here
                                      (BigDecimal.valueOf(itemQuantity))); // error here 
       BigDecimal totalTakings = (BigDecimal.valueOf(itemTotal).multiply // error here
                                     (BigDecimal.valueOf(amountOfItems))); // error here
       System.out.println("The Total Takings For Today is £" + totalTakings + " " );

     }
    }  
   }
  }
 }

私が言ったように、エラーがあることを示すためにEclipseが使用する「赤い線」は、BigDecimal計算内の「valueOf」という言葉の下にのみあります。

私は髪を引き裂いているので、どんな助けも素晴らしいでしょう!!!!

ありがとう、

ヴィニー。

4

1 に答える 1

2

方法はありませんBigDecimal.valueOf(BigDecimal)itemPriceitemQuantityすでに BigDecimal値です - 変換は必要ありません:

BigDecimal itemTotal = itemPrice.multiply(itemQuantity);

編集:さて、上記はあなたの差し迫った問題を解決しますが、あなたも持っています:

while (t == "T")
{
    // Loop that never changes the value of t
}

これには 2 つの問題があります。

  • の値を変更していないため、ループ条件は決して変更できないため、ループは常に永久に実行されるか、まったく実行されないか、例外がスローされるまで続行されますt。私の推測では、あなたt = System.in.readLine()はある時点で欲しいと思っています...
  • ここで2つの文字列参照を比較していますが、それらのを比較したいのではないかと思います。

    while (t.equals("T"))
    
于 2011-08-05T15:18:15.590 に答える