Multiplication de flottants en C
eric
-
{psycho.} Messages postés 114 Statut Membre -
{psycho.} Messages postés 114 Statut Membre -
Bonjour,
j'ai un phénomène assez bizarre, j'ai crée une matrice de petits nombres réels, je multiplie tous les nombres de la matrice entre eux et ça ne me donne pas du tout le résultat de ma calculette, exemple:
eric@x11:~$ ./prog
3.34 1.23
1.56 2.74
le produit des éléments du tableau est 17.65
c'est supérieur à ce qu'indique la calculette et lorsque le tableau est plus gros j'obtiens des nombres bcp trop gros, à quoi cela peut être dû svp?
merci
j'ai un phénomène assez bizarre, j'ai crée une matrice de petits nombres réels, je multiplie tous les nombres de la matrice entre eux et ça ne me donne pas du tout le résultat de ma calculette, exemple:
eric@x11:~$ ./prog
3.34 1.23
1.56 2.74
le produit des éléments du tableau est 17.65
c'est supérieur à ce qu'indique la calculette et lorsque le tableau est plus gros j'obtiens des nombres bcp trop gros, à quoi cela peut être dû svp?
merci
A voir également:
- Multiplication de flottants en C
- Application multiplication - Télécharger - Études & Formations
- Multiplication en anglais excel - Guide
- 7 fois 8 table de multiplication - Télécharger - Études & Formations
- Exception en point flottant - Forum C
- Multiplication sql ✓ - Forum Programmation
float a=0.0, b=1.0;
int i,j;
for(i=0;i<2;i++){
for(j=0;j<2;j++){
a += tab[i][j];
b *= tab[i][j];
}
}
c'est la boucle qui parcourt la matrice et stocke les résultats dans a et b, ensuite je fais un printf %.2f est là parfois j'ai des nombres énormes
int main(void) { float a = 3.34; float b = 1.23; float c = 1.56; float d = 2.74; printf ("%.2f\n", a*b*c*d); return 0; }donne évidemment 17,56 qui est un résultat correct.Bonne continuation.
J'ai une matrie initialisée avec de petits réels aléatoires et quand je fais la somme de tous les réels ça marche, avec le code que je t'ai donné a += ...mais au niveau de la multiplication b *= ...ça ne marche pas, ce n'est vraiment pas normal, de quoi cela peut il bien venir ....