0
Hier ist mein Code, nur ein grundlegendes Testprogramm, um eine Zahl mit Fließkommazahl zu drucken, mit printf
funktioniert es großartig (ich denke, weil das Format explizit übergeben wird), aber mit std::cout
kann ich nicht bekomme es richtig und std::setprecision
scheint nicht zu helfen, können Sie mir bitte eine Hand geben?Drucken Sie einfach doppelten Wert mit Präzision
#include <iostream>
#include <iomanip>
int main()
{
std::cout << double(1999999900)/10000 << std::endl;
std::cout << std::setprecision(5) << double(1999999900)/10000 << std::endl;
printf("%f\n", double(1999999900)/10000);
return 0;
}
Hier ist der Ausgang, wie kann ich 199.999,99 aus dem std::cout
Druck auch?
[[email protected] test00]# g++ -std=c++11 test1.cpp -o test1; ./test1
200000
2e+05
199999.990000
Experiment mit den [Gleitkomma- I/O-Manipulatoren] (http://en.cppreference.com/w/cpp/io/manip/fixed). –
In einer nicht verwandten Anmerkung, brauchen Sie diese Umwandlung nicht zu "verdoppeln", verwenden Sie einfach eine Gleitkommazahl wie '1999999900.0'. –