Die Multiplikation von zwei floats nicht geben genaue Ergebnis

Ich versuche multiplizieren von zwei floats wie folgt:

float number1 = 321.12;
float number2 = 345.34;
float rexsult = number1 * number2;

Den Ergebnissen, die ich sehen wollen, ist 110895.582, aber wenn ich den code ausführen, es macht mir einfach 110896. Die meiste Zeit bin ich mit diesem Problem. Jeder Rechner gibt mir das genaue Ergebnis mit allen Nachkommastellen. Wie kann ich erreichen, dass Ergebnis?

edit : Es ist C code. Ich bin mit XCode iOS simulator.

  • Ist das C, oder Java? Es kann entweder aus dem, was Sie gezeigt haben.
  • Und sollten Sie double statt float.
  • Sind Sie sicher, dass Sie nicht einfach abschneiden, wenn Sie es drucken? Wie hast du den Wert, den Sie bekommen?
  • Ich benutzte double zu, Gleiches Ergebnis.
  • Sie einfach nur gedruckt das Ergebnis auf 6 stellen. das ist default in C++, aber das können Sie ändern. In C++, zum Beispiel, mit std::cout<<std::setprecision(16)<<x;
  • Ich sah das Ergebnis in der Variablen Bereich der XCode IDE. Wenn ich es drucken mit "%f", es zeigt alle Dezimalstellen. Aber std::ostringstream stringStream; stringStream << rexsult; char * utf8Bytes = strdup(stringStream.str().c_str()); hier utf8Bytes abgerundet ist, auch.

InformationsquelleAutor ugur | 2012-07-08
Schreibe einen Kommentar