Arrondi à 2 chiffres après la virgule
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:
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