kyrsjo Skrevet 2. september 2005 Del Skrevet 2. september 2005 Holder på å lære java (INF1000, FAM, UiO. Det kryr vist av oss her på forumet for tiden ) Bruker easyIO, men for å få det litt pent, har jeg skrevet: display.outln ("Gjennomsnittlig nedbør på regndager:\n\t" + String.valueOf (meanRainRainDays) + " mm"); Vet at "String.valueOf (meanRainRainDays)" egentlig er nødvendig - den blir uansett konvertert til en String. Nå var poenget å konvertere den til en streng med *2* desimaler, ikke 50, *før* jeg setter den inn i programmet. Hvordan gjør jeg dette? Noe i java.Math kanskje? Vet jeg kan skrive noe sånnt: display.out ("Gjennomsnittlig nedbør på regndager:\n\t"); display.out (meanRainRainDays, 2); display.outln (" mm"); Lenke til kommentar
dabear Skrevet 2. september 2005 Del Skrevet 2. september 2005 import java.math.*; og round(mainRainRainDays, 2); ? Lenke til kommentar
kyrsjo Skrevet 2. september 2005 Forfatter Del Skrevet 2. september 2005 Funka dårlig: a -cp ~/java/classpath/easyIO.jar:. RegnMaiJuni-Oblig1.java:68: cannot find symbol symbol : method round(double,int) location: class RegnMaiJuni + round (meanRainRainDays, 2) + " mm"); ^ og: RegnMaiJuni-Oblig1.java:68: cannot find symbol symbol : method round(double,int) location: class java.lang.Math + Math.round (meanRainRainDays, 2) + " mm"); Dette er fra SUN sin compiler(ssh til klodrik), IBM sin (som jeg har hjemme IOM at den fulgte med fedora, og "bare funka"...) sier: 1. ERROR in RegnMaiJuni-Oblig1.java (at line 68) + round (meanRainRainDays, 2) + " mm"); ^^^^^ The method round(double, int) is undefined for the type RegnMaiJuni og: ---------- 1. ERROR in RegnMaiJuni-Oblig1.java (at line 68) + Math.round (meanRainRainDays, 2) + " mm"); ^^^^^ The method round(float) in the type Math is not applicable for the arguments (double, int) Er det ett eller annet idiotisk jeg gjør galt? Lenke til kommentar
kyrsjo Skrevet 2. september 2005 Forfatter Del Skrevet 2. september 2005 forøvrig: round(double) funker, men den hugger av allt som er av desimaler. Ikke *helt* det jeg vil... Lenke til kommentar
boemane Skrevet 3. september 2005 Del Skrevet 3. september 2005 Holder på å lære java (INF1000, FAM, UiO. Det kryr vist av oss her på forumet for tiden ) Bruker easyIO, men for å få det litt pent, har jeg skrevet: display.outln ("Gjennomsnittlig nedbør på regndager:\n\t" + String.valueOf (meanRainRainDays) + " mm"); Vet at "String.valueOf (meanRainRainDays)" egentlig er nødvendig - den blir uansett konvertert til en String. Nå var poenget å konvertere den til en streng med *2* desimaler, ikke 50, *før* jeg setter den inn i programmet. Hvordan gjør jeg dette? Noe i java.Math kanskje? Vet jeg kan skrive noe sånnt: display.out ("Gjennomsnittlig nedbør på regndager:\n\t"); display.out (meanRainRainDays, 2); display.outln (" mm"); Det enkleste er å bruke java.text.DecimalFormat, på følgende måte: import java.text.DecimalFormat; ... double pi = 3.14159; DecimalFormat df = new DecimalFormat("0.00"); System.out.println(df.format(pi)); Javas API inneholder en del slike formateringsklasser, som f.eks. SimpleDateFormat, etc. Geniale klasser og enkle å bruke. DecimalFormat bruker ROUND_HALF_EVEN når den avrunder. Lenke til kommentar
kyrsjo Skrevet 3. september 2005 Forfatter Del Skrevet 3. september 2005 Det funka Takker! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå