Nyckelord: System.out.print, Math.PI
Formatera utskrifter i Java
I denna uppgift ska vi testa formatera olika tal före utskrift. Utgå från programmet:
public class Uppgift5 {
public static void main(String[] args) {
double pi = Math.PI;
System.out.println(pi); // 3.141592653589793
// Skriv din kod här
}
}
Testa att skriva ut pi med olika antal decimaler. Börja först med noll decimaler och stega upp till nio stycken decimaler. Utskriften när programmet körs ska alltså bli:
3.141592653589793
3
3,1
3,14
3,142
3,1416
3,14159
3,141593
3,1415927
3,14159265
3,141592654
Ledtråd
Det är kommandot
String.format(java.util.Locale.forLanguageTag("sv-SE"), "specificerare", tal);
som formaterar en textsträng.
Ledtråd 2
Det är formateraren “%.nf” där n är antal decimaler som avrundar ett tal till närmsta decimaltal. Läs mer om formateringar i avsnittet: System.out.print – Hur skriver man ut text i Java? för att lära dig mer om utskrifter.
Svar
public class Uppgift5 {
public static void main(String[] args) {
double pi = Math.PI;
System.out.println(pi); // 3.141592653589793
System.out.println(String.format(java.util.Locale.forLanguageTag("sv-SE"), "%.0f", pi));
System.out.println(String.format(java.util.Locale.forLanguageTag("sv-SE"), "%.1f", pi));
System.out.println(String.format(java.util.Locale.forLanguageTag("sv-SE"), "%.2f", pi));
System.out.println(String.format(java.util.Locale.forLanguageTag("sv-SE"), "%.3f", pi));
System.out.println(String.format(java.util.Locale.forLanguageTag("sv-SE"), "%.4f", pi));
System.out.println(String.format(java.util.Locale.forLanguageTag("sv-SE"), "%.5f", pi));
System.out.println(String.format(java.util.Locale.forLanguageTag("sv-SE"), "%.6f", pi));
System.out.println(String.format(java.util.Locale.forLanguageTag("sv-SE"), "%.7f", pi));
System.out.println(String.format(java.util.Locale.forLanguageTag("sv-SE"), "%.8f", pi));
System.out.println(String.format(java.util.Locale.forLanguageTag("sv-SE"), "%.9f", pi));
}
}
Förklaring:
Kommandot
String.format(java.util.Locale.forLanguageTag("sv-SE"), "specificerare", tal);
formaterar en textsträng till önskad format. Det är formateraren “%.nf” där n är antal decimaler som avrundar ett tal till närmsta decimaltal.
Exempel med decimalcomma använder uttryckligen svensk locale. Tal skrivs fortfarande med decimalpunkt i Java-källkod.