I war der Unterschied zwischen log(3)
herauszufinden und log10(3)
, mit diesem Code:Warum druckt std :: cout 4.9999999 als 5?
void testPrecisionError() {
cout
<< log(243)/log(3) << " : "
<< int(log(243)/log(3)) << " : "
<< endl;
cout
<< log10(243)/log10(3) << " : "
<< int(log10(243)/log10(3)) << " : ")
<< endl;
}
Der Ausgang ist:
5 : 4 // I think it is 4.999999 underlying
5 : 5
Ich fand heraus, dass als 4.999999
5
ausgedruckt wird.
Warum druckt C++ es nicht wie 4.99999
wie Java?
Ich glaube, ich konnte nicht mehr cout
, um mich davon zu überzeugen, dass es keinen PRÄZISIONSVERLUST gibt!
Die Standard-Genauigkeit ist 6. –
Warum nicht C++ es als 4.99999 wie Java ?? –
4.99999 hat nur 5 Stellen der Genauigkeit, nicht 6 wie Standard C –