Bonjour à tous,
Rien de mieux qu'un bout de code pour comprendre :
Et voici les résultats dont le deuxième qui me surprend quelque peu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 // NumberFormat String nombre = "12.123455"; String nombre2 = "12.612325"; Integer minDecimal = new Integer("2"); Integer maxDecimal = new Integer("5"); NumberFormat nf = NumberFormat.getInstance(); double nombreFloat = new Double("0"); double nombreFloat2 = new Double("0"); try { nombreFloat = (new Double(nombre)).doubleValue(); nombreFloat2 = (new Double(nombre2)).doubleValue(); } catch(NumberFormatException nfe){ nfe.printStackTrace(); } if(minDecimal!=null){ nf.setMinimumFractionDigits(minDecimal.intValue()); } if(maxDecimal!=null){ nf.setMaximumFractionDigits(maxDecimal.intValue()); } System.out.println("\n\nNumberFormat : " + nf.format(nombreFloat)); System.out.println("NumberFormat : " + nf.format(nombreFloat2));:
Quelqu'un sait-il pourquoi le deuxième résultat n'est pas "12.61233" ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 NumberFormat : 12,12346 NumberFormat : 12,61232
Pour info, vous pouvez aussi essayer avec "12.612315" avec il va bien vous donner "12.61232" !!!
En théorie, vu qu'il y a un 5 derrière il n'y a même pas à se poser la question. Ai-je louper un cours élémentaire de maths en ce qui concerne les arrondis???
Merci d'avance
Partager