09. april 2003 - 22:32
Der er
15 kommentarer og 1 løsning
Afrunding af Double til 2 decimaler
Hejsa... jeg har nu forsøgt at afrunde understående Double pct til to decimaler.... men desværre uden held :o( Håber nogen kan hjælpe :o) private Double pct; public void setPct(Double pct) { this.pct = pct; } this.pct vil jeg gerne have med 2 decimaler... men hvordan? Mvh Torben
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
09. april 2003 - 22:36
#1
double d = 123.456; double d2 = ((int)(100*d))/100.0;
09. april 2003 - 22:38
#2
Det er nedrunding. Afrunding vil være: double d = 123.456; double d2 = ((int)(100*d+0.5))/100.0;
09. april 2003 - 22:39
#3
public class TwoDecimals { public static void main(String[] args) { double d = 123.456; double d2 = ((int) (100 * d)) / 100.0; System.out.println(d2); double d3 = ((int) (100 * d + 0.5)) / 100.0; System.out.println(d3); } } udskriver: 123.45 123.46
09. april 2003 - 22:40
#4
Jeg har kigget rundt på exp og set den løsning du kommer med arne... men det virker desværre ikke i mit tilfælde hvor jeg arbejde med et Double objekt :o(
09. april 2003 - 22:42
#5
Jamen du kan da konvertere fra Double til double og tilbage igen.
09. april 2003 - 22:44
#6
package test; public class TwoDecimals { public static void main(String[] args) { double d = 123.456; double d2 = ((int) (100 * d)) / 100.0; System.out.println(d2); double d3 = ((int) (100 * d + 0.5)) / 100.0; System.out.println(d3); Double dd = new Double(d); Double dd2 = new Double(((int) (100 * dd.doubleValue())) / 100.0); System.out.println(dd2); Double dd3 = new Double(((int) (100 * dd.doubleValue() + 0.5)) / 100.0); System.out.println(dd3); } }
09. april 2003 - 22:45
#7
Jeg ved ikke om det er kønt, men det virker.
09. april 2003 - 22:50
#8
Vær iøvrigt opmærksom på muligheden af at gemme uden at afrunde og kun udkrive med 2 decimaler via java.text.DecimalFormat !
09. april 2003 - 22:52
#9
Ja den har jeg også set, men det kan kun bruges til "dos" udskrivning hvis jeg ikke tager helt fejl....
09. april 2003 - 22:53
#10
Den konverterer til en StringBuffer som kan printes til et console vindue, men som også kan puttes ind i et GUI felt.
09. april 2003 - 22:53
#11
Eksempel: import java.text.DecimalFormat; public class TwoDecimals { public static void main(String[] args) { double d = 123.456; double d2 = ((int) (100 * d)) / 100.0; System.out.println(d2); double d3 = ((int) (100 * d + 0.5)) / 100.0; System.out.println(d3); Double dd = new Double(d); Double dd2 = new Double(((int) (100 * dd.doubleValue())) / 100.0); System.out.println(dd2); Double dd3 = new Double(((int) (100 * dd.doubleValue() + 0.5)) / 100.0); System.out.println(dd3); DecimalFormat fmt = new DecimalFormat("#.##"); System.out.println(fmt.format(d)); System.out.println(fmt.format(dd.doubleValue())); } }
09. april 2003 - 22:56
#12
Bemærk at den afrunder ikke nedrunder.
09. april 2003 - 23:01
#13
Det virker jo fint! Tak for det :o) Er det på nogen måde let at tvinge den til at vise 2 decimaler? altså således at der ikke står fx 9.1 men 9.10?
09. april 2003 - 23:04
#14
DecimalFormat fmt = new DecimalFormat("#.00"); viser altid to decimaler også selvom de er nul.
09. april 2003 - 23:04
#15
Men jeg tror ikke det kan laves med numerisk konvertering.
09. april 2003 - 23:08
#16
Okey, så er det lige meget - jeg skulle bruge det med nummerisk formatering. Tak for hjælpen i hvert fald.
Kurser inden for grundlæggende programmering