15. september 2013 - 21:44Der er
3 kommentarer og 1 løsning
Sum af double problem
Hej
Jeg skal lave en for-løkken som tæller fra f.eks. 0.4 til 0.43 med 0.01 interval. Resultatet skulle derfor gerne være 0.4, 0.41, 0.42 og 0.43.
Men resultatet bliver istedet: 0.4 0.41000000000000003 0.42000000000000004
Jeg får samme resultat med en float. Jeg er ny i java, så det er sikkert en simple ting jeg gør forkert. Det burde vel kunne lade sig gøre at lægge 0.01 til 0.4 i en for-løkke og få 0.41 istedet for 0.41000000000000003.
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.
public class FPFun { public static void main(String[] args) { double x = 0.4; for(int i = 0; i < 10; i++) { System.out.println(x); x += 0.01; } double xx = 0.4; for(int i = 0; i < 10; i++) { System.out.printf("%.2f\n", xx); xx += 0.01; } BigDecimal xxx = (new BigDecimal("0.4")).setScale(2); BigDecimal d = (new BigDecimal("0.01")).setScale(2); for(int i = 0; i < 10; i++) { System.out.println(xxx); xxx = xxx.add(d); } } }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.