-1

次のエラー コードが表示され続けます。

SoftwareSales.java:20: シンボルが見つかりません

記号 : 可変売上高

場所: クラス SoftwareSales

  Sales = 99;
  ^

SoftwareSales.java:30: シンボルが見つかりません

記号 : 可変売上高

場所: クラス SoftwareSales

  Total = Quantity * Sales;
                     ^

SoftwareSales.java:32: シンボルが見つかりません

記号:可変割引

場所: クラス SoftwareSales

  Total = Total - Disount;
                  ^

SoftwareSales.java:37: 精度が失われる可能性があります

見つかった:フロート

必須: 整数

     Rate = .20f;
            ^

SoftwareSales.java:39: 精度が失われる可能性があります

見つかった:フロート

必須: 整数

     Rate = .30f;
            ^

SoftwareSales.java:41: 精度が失われる可能性があります

見つかった:フロート

必須: 整数

     Rate = .40f;
            ^

SoftwareSales.java:43: 精度が失われる可能性があります

見つかった:フロート

必須: 整数

     Rate = .50f;
            ^

7 エラー

これまでの私のコードは次のとおりです。

import java.util.Scanner;

public class SoftwareSales
{
   public static void main(String[] args)
   {

      Scanner keyboard = new Scanner(System.in);

      Sales = 99;

      int Quantity;
      int Total;
      int Rate;
      double Discount;

      System.out.print ("Enter amount of packages purchased: ");
            Quantity = keyboard.nextInt();

      Total = Quantity * Sales;
      Discount = Total * Rate;
      Total = Total - Disount;

      if(!(Total < 10))
         System.out.println("No discount." + "Your total is: " + Total);
      else if(Total >= 19)
         Rate = .20f;
      else if(Total >= 49)
         Rate = .30f;
      else if(Total >= 99)
         Rate = .40f;
      else
         Rate = .50f;

      System.out.println("Your discount is " + Discount + 
                         ". Your total is: " + Total);
   }
}

どんな助けでも大歓迎です。御時間ありがとうございます。

4

4 に答える 4

3

変数を宣言する必要がありますSales。例えば:

int Sales = 99;

精度の損失エラーは、変数floatに値を代入しているためです。intこれは警告として扱われることもありますが、通常はエラーを示しており、適切な変数の型を宣言するか、明示的なキャストを使用する必要があります。おそらく、変数を と宣言する必要がありますfloat。または、整数のセント値ですべての計算を行い、潜在的な丸め誤差を回避します。

これについて尋ねたわけではありませんが、Java の命名規則では、変数はキャメル ケースで、小文字で始まります:salesの代わりにSales(そのような変数名がある場合は の代わりに) totalSalesTotalSales

于 2013-09-13T17:21:12.803 に答える
2

クラス名との混同を避けるために、変数を小文字にしたい場合があります。Java では、クラス名は常に大文字になるため、コードが混乱する可能性があります。

int sales = 99;シンボルを宣言したことがないため、シンボルを解決できません。

Ratedouble である必要があり、値を float にキャストしている場合は、そのままにしておくことができます.f

于 2013-09-13T17:21:46.547 に答える
2
  • 定義していませんSales
  • タイプミスがありますDisount
  • Rateタイプである必要がありますfloat
于 2013-09-13T17:21:55.737 に答える
0

友よ、変数の型を学ぶ必要があります。Sales はおそらく int なので、

int Sales

料金は2倍なので

double Rate

コード全体は

import java.util.Scanner;

public class SoftwareSales
{
   public static void main(String[] args)
   {

      Scanner keyboard = new Scanner(System.in);

      int sales = 99;

      int quantity;
      double total;
      double rate = 0; // set rate to what you need.
      double discount;

      System.out.print ("Enter amount of packages purchased: ");
            quantity = keyboard.nextInt();

      total = quantity * sales;
      discount = total * rate;
      total = total - discount;

      if(!(total < 10))
         System.out.println("No discount." + "Your total is: " + total);
      else if(total >= 19)
         rate = .20f;
      else if(total >= 49)
         rate = .30f;
      else if(total >= 99)
         rate = .40f;
      else
         rate = .50f;

      System.out.println("Your discount is " + discount + 
                         ". Your total is: " + total);
   }
}
于 2013-09-13T17:23:03.627 に答える