J'ai un nombre flottant par exemple 12.12123 Existe-t-il une fonction qui afficherait uniquement un nombre à 2 chiffres après la virgule 12.12?
Voici le code:
y1 = ( c1 - (a1 * x)) / b1;
y2 = ( c2 - a2 * x) / b2;
if (y1 == y2)
cout << "The same";
donc si le y1 = 1,001 et le y2 = 1,002 ils n'apparaissent pas comme les mêmes.
J'ai essayé d'ajouter. cout.setf (ios :: fixed, ios :: floatfield); cout.precision (2);
mais cela ne semble pas aider.
Vous recherchez printf("%.2f", 12.12123);
ou:
#include <iostream>
#include <iomanip>
using namespace std;
cout << fixed << setprecision(2) << 12.12123;
EDIT: La question a changé, la réponse aussi.
Vous ne voulez jamais utiliser l'égalité directe avec virgule flottante, vous comparez toujours dans la tolérance epsilon . Votre epsilon
est tout simplement assez grand.
Remplacez if (y1 == y2)
par if (abs(y1 - y2) < 0.01)
.
double num = 1.4567;
printf("%.2f",num);
Cela imprimerait 1,46
cout.precision(2);
cout <<f;
#include <iostream>
#include <iomanip>
int main ()
{
double d = 1.242354345;
using namespace std;
cout << setiosflags(ios::fixed | ios::showpoint)
<< setprecision(2)
<< d;
}
Vous posez probablement une mauvaise question. Essayez de suivre:
double diff = fabs(y1-y2);
if(diff < 0.005)
cout << "Almost same";
cout.setf(ios::fixed, ios::floatfield);
cout.precision(2);
float al = 42.645; //sample
cout << al;