2

私は野球の統計を入れるプログラムを書く必要があり、それは平均打率%の長打率で出てきて、プレーヤーの名前を言ってからセンチネルループに入れます。私の現在のコードは以下です。ループに変える前に、1つだけで動作させようとしています。テストを実行すると、UnknownFormatConversionException. どういう意味ですか?コードを修正するにはどうすればよいですか?

import java.util.Scanner;
public class bata
{
    public static void main(String[] args) throws Exception
    {
    double ba,sp,tb;
    int tri,dou,sin,hr,ab,hits;
    String name;
    Scanner sc = new Scanner(System.in);
    System.out.print("Enter Singles");
    sin = sc.nextInt();
    System.out.print("Enter Doubles");
    dou = sc.nextInt();
    System.out.print("Enter Triples");
    tri = sc.nextInt();
    System.out.print("Enter Homeruns");
    hr = sc.nextInt();
    System.out.print("Enter At bats");
    ab = sc.nextInt();
    System.out.print("Enter Player name");
    name = sc.nextLine();
    System.in.read();
    tb= (sin + (dou*2) + (tri *3) +(hr *4));
    hits = sin+dou+tri+hr;
    sp= tb/ab;
    ba= hits/ab;
    System.out.println(""+name);
    System.out.printf("Slugging % is %.3f\n", sp);
    System.out.printf("Batting avg os %.3f\n", ba);
    }
}
4

2 に答える 2

6

double を使用したエスケープ%記号%%:

System.out.printf("Slugging %% is %.3f\n", sp);
//                           ^------------- escaping
于 2012-07-11T18:03:21.203 に答える
0

UnknownFormatConversionException は、整数を予期してスキャナから文字列を読み取ったときに発生します。入力ファイルを投稿していただけると助かります。

また、別の % を使用して % 記号をエスケープします。

  System.out.printf("Slugging %% is %.3f\n", sp);
于 2012-07-11T18:04:10.320 に答える