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.
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.