0

次のコードがあり、出力は機能していますが、例として、66.66666666666667% の代わりに printf を使用してこの出力 (66.67%) を作成する方法がわかりません。どんな助けでも大歓迎です!

public static void evenNumbers(Scanner input) 
{
     int numNums = 0;
     int numEvens = 0;
     int sum = 0;

 while (input.hasNextInt()) 
  {
     int number = input.nextInt();
      numNums++;
     sum += number;
   if (number % 2 == 0) 
   {
        numEvens++;
   }
  }
     System.out.println(numNums + " numbers, sum = " + sum);
     System.out.println(numEvens + " evens " + (100.0* numEvens / numNums + "%"));



}

ありがとうございました

4

4 に答える 4

0

ここでは使用しないprintfでください。代わりに、MessageFormatまたはを使用しますDecimalFormat.getPercentInstance()

String format = "{numbers: {0, number, integer}," +
                " sum: {1, number,  integer}\n" +
                "evens: {2, number, integer}," +
                " {3, number, percent}"
String message = MessageFormat.format(format,
    new Object[]{numNums, sum, numEvens, ((double) numEvens)/ numNums)});
System.out.println(message); 
于 2013-10-24T21:41:22.317 に答える