-4
{      
       PrintHeaderLine();

       System.out.format("%-15s %-55s %15s %n", "SL NO", "PRODUCT", "COST");

       PrintHeaderLine();

      for(int x=0;x<k;x++)
      {
          totalcash=totalcash+amount[x];
          System.out.format("%-15s %-55s %15s %n", (x+1), itemsbought[x], "$"+ amount[x]);
      }      
      if(totalcash>=500&&totalcash<1000)
      {
          totalcash=totalcash*(95/100);
        }
      else if(totalcash>=1000&&totalcash<3000)
      {
      totalcash=totalcash*(90/100);
    }
      else if(totalcash>=3000)
      {
      totalcash=totalcash*(85/100);

    }
    else 
      totalcash=totalcash+0;
      PrintHeaderLine();     

      System.out.format("%-15s %71s %n", "GRAND TOTAL ", "$" + totalcash);

(私は出力を 0 として取得し続けます) IK は、この問題のみが発生する前にコードに問題はありません。どこが間違っているのか誰か教えてくれませんか

4

2 に答える 2

1

if/if else ステートメントでは、totalcash 変数に整数値 0 を掛けています。整数 (95) を別の整数 (100) で割ると、結果として整数除算が得られます。これは、次の整数値に相当します。 0.

試す:

if(totalcash>=500&&totalcash<1000)
{
    totalcash=totalcash*((double)95/100);
}
else if(totalcash>=1000&&totalcash<3000)
{
    totalcash=totalcash*((double)90/100);
}
else if(totalcash>=3000)
{
    totalcash=totalcash*((double)85/100);
}
else 
     totalcash=totalcash+0;
于 2013-11-12T01:59:16.133 に答える
1
  • 95/100 = 0
  • 90/100 = 0
  • 85/100 = 0

これらがすべて 0 に等しいとすると、次のようになります。

  • 総現金 * 0 = 0

したがって:

  • 総現金 = 0

double を使用する場合は、数式でも double を使用する必要があります。現在、上記の値はすべて整数です。したがって、これの代わりに:

95/100

これを行う:

95.0/100.0
于 2013-11-12T01:59:57.377 に答える