2017-07-13 4 views
1

J'ai essayé d'imprimer des nombres décimaux en stockant les variables dans float et double mais je n'obtiens pas la sortie désirée. Qu'est-ce que je ne comprends pas sur ces types de données?Impression décimale à l'aide de float, double en C++

suit est mon code:

int main(){ 
    double s = 0; 
    float r = 1/4; 
    cout << r << endl; 
    cout << pow((1 - s), 2) << endl; 
    cout << (2 + s) << endl; 
    cout << (1/4) * (pow((1 - s), 2)) * (2 + s) << endl; 
    return 0; 
} 

sortie:

0 
1 
2 
0 

La première ligne devrait être de 0,25 et la dernière doit être de 0,5.

+1

Le stockage de la valeur dans un flottant ou un double n'aidera pas si vous * calculez * la valeur en arithmétique entière. – user2357112

Répondre

1

Vous faites des mathématiques entières. Un entier divisé par un nombre entier quatre est arrondi à zéro.

Vous devez indiquer au compilateur que vos littéraux numériques sont des valeurs à virgule flottante.

float r = 1.0/4.0; 
cout << r << endl; 
cout << pow((1.0 - s), 2) << endl; 
cout << (2.0 + s) << endl; 
cout << (1.0/4.0) * (pow((1.0 - s), 2)) * (2.0 + s) << endl; 
+1

Dam ne s'en est pas rendu compte. Merci! – user6771484

+0

@ user6771484 vous êtes les bienvenus. Heureux d'avoir pu aider. –