Ich schreibe eine Anwendung, die eine Menge Manipulation mit Dezimal Zahlen (z. B. 57.65). Da Multiplikationen und Divisionen ihre Genauigkeit schnell verschlechtern, möchte ich die Zahlen in einer Klasse speichern, die ihre Genauigkeit nach der Manipulation bewahrt, anstatt sich auf Float und Double zu verlassen.Gibt es eine Bibliotheksklasse zur Darstellung von Fließkommazahlen?
Ich spreche über etwas wie folgt aus:
class FloatingPointNumber {
private:
long m_mantissa;
int m_dps; // decimal points
// so for example 57.65 would be represented as m_mantissa=5765, m_dps=2
public:
// Overloaded function for addition
FloatingPointNumber operator+(FloatingPointNumber n);
// Other operator overloads follow
}
Während es möglich ist für mich eine solche Klasse zu schreiben, fühlt es sich ein bisschen wie das Rad neu zu erfinden, und ich bin sicher, dass es eine Bibliotheksklasse sein müssen Irgendwo, was das tut (obwohl das in STL nicht zu existieren scheint).
Kennt jemand eine solche Bibliothek? Danke vielmals.
Ja, der Datentyp, den Sie suchen, heißt Dezimal. Es ist jedoch kein Fließkomma-Typ. Es ist der Datentyp, der zum Beispiel bei der Darstellung von Geld verwendet wird. – Skurmedel
C++ hat keine Dezimalzahl. – GManNickG
Nein, ich habe nie gesagt, dass es hat. – Skurmedel