Bonjour à tous,
Je rencontre un problème d'arrondi dans le résultat de mon calcul..
J'ai beau avoir vu la FAQ à ce sujet, utilisé les instructions : rint, floor, et autre round...
Voilà mon code, j'ai éliminé la partie déclaration des variables pour des questions de visibilités, mais elles sont en double :
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
23
24
25
26
27
28
29
30 do { R1 = (I*P/N)/ Math.pow(1-1/(I/N+1), (N*Y)); double p = Math.pow(10.0, 2); R1 = Math.floor(R1*P+0.5)/p; I3 = Math.abs(I-I2)/2; I2 = I; if ( R1 > R ) { I = I - I3; } else if (R1 < R) { I = I + I3; } } while ( R1!= R); if ( R1==R) { I=I*100; }
Aux premières passes de la boucle, j'ai bien l'arrondi à 2 chiffres..
Mais là où celà coince, c'est lorsque la valeur de I devient par exemple 0.25, R1 devient mathématiquement 13253.11784687E17...
Effectivement I peut devenir par exemple 0.25754, mais malgré le fait de déclarer R1 en round, int ou autre, il ne me m'arrondi pas la valeur à 13253.11
Comment procéder ou quelqu"un aurait une idée ?
Merci d'avance
Partager