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