Python verwendet IEEE 754 doubles für seinen Schwimmer. Sie sollten also alles nach 15 signifikanten Zahlen oder so als Science-Fiction behandeln. Und das nur für eine frisch initialisierte Nummer. Wenn Sie Operationen mit Gleitkommazahlen ausführen, können Sie mehr Genauigkeit verlieren, insbesondere wenn Sie Addition oder Subtraktion zwischen Zahlen vornehmen, die sich in der absoluten Größe signifikant unterscheiden.
OTOH, Subtraktion zwischen Zahlen sehr nahe beieinander in der Größenordnung kann zu catastrophic cancellation führen.
Wenn Sie vorsichtig sind, können Sie die Auswirkungen dieser Probleme zu reduzieren, aber Sie tun brauchen ein gutes Verständnis der Fließkomma-Arithmetik funktioniert, und wohlerzogene Daten.
Alternativ können Sie mit einer Bibliothek arbeiten, die eine höhere Genauigkeit bietet, z. B. Pythons Dezimal-Modul. Sie müssen immer noch darauf achten, eine katastrophale Löschung und die anderen Probleme zu vermeiden, die zu einem Bedeutungsverlust führen, aber zumindest haben Sie wichtigere Ziffern zum Spielen.
Das Decimal-Modul bietet nur grundlegende arithmetische Operationen. Wenn Sie erweiterte mathematische Funktionen wie trigonometrische Funktionen und Exponentialfunktionen benötigen, werfen Sie einen Blick auf das exzellente mathematische Modul mpmath. Es kann komplexe Zahlen verarbeiten, Gleichungen lösen und einige Rechenoperationen durchführen.
Es sieht so aus, als ob Python ganzzahlige Subtraktion oder Parsing des Ergebnisses zu Integer macht. Können Sie genau zeigen, wie Sie die Werte zuweisen und wie Sie das Ergebnis berechnen? Kopieren Sie einfach den zugehörigen Codeblock bitte. – FallenAngel
Siehe auch http://sopthon.com/canon/87/why-is-is-this-particular-floating-point-math-operation-not-giving-the-correct-answ/ – tripleee
Fließkommazahlen stellen im Wesentlichen signifikante Stellen dar , so können Sie kleine Unterschiede zwischen großen Zahlen nicht verfolgen. Da Ihr 'a' 16 Ziffern lang ist, gibt es keinen" Raum "mehr, um auch den Bruchteilunterschied darzustellen.In welchem Kontext müssen Sie Unterschiede, die im Verhältnis zu den beteiligten Zahlen so gering sind, im Auge behalten? – BrenBarn