Formatowanie liczb zmiennoprzecinkowych

0

Cześć, zacząłem uczyć się javy ostatnio i mam pytanie dot. formatowania liczb.
Wymyśliłem sobie mały programik ala przelicznik walut, mam problem przy wypisaniu końcowego komunikatu.

System.out.println("1 euro to 4,27 złotych \n Podałeś " + ilosc + " euro do przeliczenia. Wyszło: " + suma + "PLN");

Chciałbym zmienną "suma" zaokrąglić do 2 miejsc po przecinków.
Trochę poszukałem i udało mi się napisać coś takiego:

System.out.printf("1 euro to 4,27 złotych \n Podałeś " + ilosc + " euro do przeliczenia. Wyszło: %.2f" , suma );

Jedyny problem to że po dopisaniu + "PLN" w konsoli dostaje to Exception in thread "main" java.util.IllegalFormatConversionException: f != java.lang.String

0

Oto cały main

int waluta;
       double ilosc, suma;
       final double EURO = 4.27 , DOLAR = 3.95, FUNT = 5.10;
       Scanner input = new Scanner(System.in);
       System.out.println("Przelicznik walut na złotówki.");
       System.out.println("Kurs na dzień 19.02.2020");
       System.out.println("Podaj numer waluty do przeliczenia:");
       System.out.println("\t 1. Euro. \n\t 2. Dolar. \n\t 3. Funt.");
       waluta = input.nextInt();
       System.out.println("Podaj ilość wybranej waluty do przeliczenia: ");
       ilosc = input.nextDouble();
       switch (waluta){
           case 1:
               suma = ilosc * EURO;
               System.out.println("1 euro to 4,27 złotych \n Podałeś " + ilosc + " euro do przeliczenia. Wyszło: " + suma + "PLN");
               break;
           case 2:
               suma = ilosc * DOLAR;
               System.out.println("1 dolar to 3,95 złotych \n Podałeś " + ilosc + " dolarów do przeliczenia. Wyszło: "+ suma + " PLN");
               break;
           case 3:
               suma = ilosc * FUNT;
               System.out.println("1 funt to 5,10 złotych \n Podałeś " + ilosc + " funtów do przeliczenia. Wyszło: " + suma + " PLN");
               break;
2

Jeżeli korzystasz z printf to korzystaj z printf, a nie łącz ciągi ręcznie za pomocą + :) PLN po prostu dopisz na koniec ciągu.

System.out.printf("1 euro to 4,27 złotych \n Podałeś %.2f euro do przeliczenia. Wyszło: %.2f PLN", ilosc, suma);

1 użytkowników online, w tym zalogowanych: 0, gości: 1