String.Format для округления, не удается найти недопустимую ошибку источника преобразования формата?

Я пишу программу это позволяет пользователю ввести 6 показаний температуры, а затем либо

  1. вернуть самые высокие исходные значения + версия по Цельсию
  2. вернуть исходные значения + преобразование в версию по Цельсию.

код, в котором устанавливаются значения массивов, находится здесь:

System.out.print( "Enter Temperature:\t");   //Get the count...
        Temp = LocalInput.nextInt();
        WeatherSpots[K].CatchCount = Temp;

сообщение об ошибке, которое я получаю, это

java.util.IllegalFormatConversionException: f != java.lang.Integer
at java.util.Formatter$FormatSpecifier.failConversion(Unknown Source)
at java.util.Formatter$FormatSpecifier.printFloat(Unknown Source)
at java.util.Formatter$FormatSpecifier.print(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.lang.String.format(Unknown Source)
at p2list.WeeklyReport(p2list.java:102)
at p2list.main(p2list.java:33)"

я также нашел точную фразу, которая вызывает у меня затруднения:

String.format("%.2d", (WeatherSpots[K].CatchCount - 32) * 5 / 9)"

я знаю, что происходит ошибка когда мой "%._"не имеет правильного спецификатора, но все мои переменные и массивы находятся в int, поэтому d должен работать

вот остальная часть кода:

Вот как я установил 1-й массив:

private static  WeatherLocation[] WeatherSpots = new WeatherLocation[6];"

Это класс, который используют более поздние массивы

public class WeatherLocations extends WeatherLocation {
    public String LocationID;
    public Integer CatchCount;"

    arrays = WeatherSpots.LoccationID/Catchcount"

Здесь массив catchcountустанавливается с пользовательскими входными температурами

int K;
for(K = 0 ; K < 6 ; K++){
    System.out.print( "Enter Temperature:\t");
    Temp = LocalInput.nextInt();
    WeatherSpots[K].CatchCount = Temp;

Вот метод, в котором я пытаюсь для вызова значений WeatherSpots[K].catchcountдля преобразования в градусы Цельсия

int K= 0;
for(K = 0 ; K < 6 ; K++){
    System.out.println( "" + WeatherSpots[K].LocationID +"\t\t" + WeatherSpots[K].CatchCount + "\t\t" + String.format("%.2f", (WeatherSpots[K].CatchCount - 32) * 5 / 9));

Что может вызвать ошибку, если мои массивы и переменные являются правильными типами для использования string.format?

5
задан wattostudios 25 June 2012 в 02:36
поделиться