Ich habe den folgenden Code auf Mac versucht, die Ausgabe ist irgendwie seltsam für mich.C++ anderes Druckverhalten zwischen Werten und Variablen
float a = 2.225;
float b = 123.235;
printf("round: %.2f %.2f \n", a, b);
printf("round: %.2f %.2f \n", 2.225, 123.235);
Ausgang:
round: 2.22 123.24
round: 2.23 123.23
g ++ --version
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 7.3.0 (clang-703.0.31)
Target: x86_64-apple-darwin15.5.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
Was die Rundungsregeln in Druck sind? Wie kann ich in diesen beiden Situationen das gleiche Druckergebnis erzielen? Vielen Dank.
Ich denke der Unterschied ist zwischen 'float's und' double's. –
Gelesen http://floating-point-gui.de/ –
Das Problem ist nicht im Drucken - Sie erhalten unterschiedliche Ausgabe, weil Sie unterschiedliche Eingabe übergeben. Im ersten Fall verlieren Sie die Genauigkeit in dem Moment, in dem Sie 'float' Variablen' double' Werte zuweisen. –