11. marts 2003 - 15:55
Der er
9 kommentarer og 1 løsning
Rund double af til 2 decimaler
Hvordan gør man det ?? ((double)5/9) * (fah - 32) + ""); Skal kun have to decimaler...... (o;
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
11. marts 2003 - 16:09
#1
double x; int v = (int)(100 * x + 0.5); double z = v / 100.0;
11. marts 2003 - 16:10
#2
Ovenstående laver afrunding til nærmeste to decimaler. Hvis du vil have nedruning til to decimaler, så drop +0.5.
11. marts 2003 - 17:08
#3
Et af de andre alternativer kunne være denne løsning, hvert "o" i DecimalFormat("0.00") er en slags flag, som indikerer hvor mange decimaler der skal være på hver side af punktummet, den runder automatisk op og ned. Carsten import java.text.DecimalFormat; public class Test { public Test() { double d = (double) 11/6; double d1 = (double) 5/3; DecimalFormat output = new DecimalFormat("0.00"); System.out.println( output.format(d) ); System.out.println( output.format(d1) ); } public static void main (String[] a) { new Test(); } }
11. marts 2003 - 17:20
#4
String t = top.getText(); double cel = Double.parseDouble(t); int v = (int)(100 * cel + 0.5); bund.setText((double)(9/5) * v + 32 / 100.0 + ""); Jeg kan ikke få det til at virke :(
11. marts 2003 - 17:30
#5
Du skal først lave konverteringen til sidst. Eksempel: public class Round { public static void main(String[] args) { String t = "123.456"; double cel = Double.parseDouble(t); double far = 9.0 / 5.0 * cel + 32; int far100 = (int) (100 * far + 0.5); double far2dig = far100 / 100.0; System.out.println(far + " -> " + far2dig); } }
11. marts 2003 - 17:36
#6
int v = (int)(100 * cel + 0.5); // RETTES TIL double v = (double)(100 * cel + 0.5); > arne_v: Jeg havde ikke lige set, at du tidligere på dagen havde besvaret et spørgsmål vedrørende 2 decimaler. Carsten
11. marts 2003 - 17:45
#7
carsten> Jo, men i det spørgsmål blev der mere eksplicit spurgt efter formateringen. Jeg læste dette spørgsmål som en generel data konvertering. Måske skulle jeg læse mere end overskriften inden jeg svarer ! :-)
11. marts 2003 - 17:48
#8
carsten> Jeg forstår iøvrigt slet ikke din rettelse. Det er meget bevist at jeg vil have den konverteret til int for at slippe af med de "overflødige" decimaler. Lad os starte med 123.456. 100 * 123.456 + 0.5 = 12346.1 (int)12346.1 = 12346 12346/100.0 = 123.46
11. marts 2003 - 17:51
#9
Det samme her - iøvrigt tror jeg mit sidste svar er dybt godnat. Desto mere jeg læser, ser jeg at det er dit forslag til oprunding. Carsten
11. marts 2003 - 20:12
#10
arne_v >> Dit svar er smukt. Især efter implementeringen i min kode (o; Tak for hjælpen
Kurser inden for grundlæggende programmering