Ich habe ein Problem mit der Verwendung von Log10 (x), um große Zahlen zu komprimieren. Wenn ich eine große Zahl mit Math.Log10 (x) konvertiere und dann versuche, sie mit 10 ** log10 (x) wiederherzustellen, erhalte ich immer ein Ergebnis, das aufgrund der ursprünglichen Zahl aufgrund von schwimmenden Punkt-Präzisionsgrenzen etwas anderes unterscheidet.import math
original = 1180591620810475438080
log_value = math.log10(original)
recovered = 10 ** log_value
print(f"Original: {original}")
print(f"log10(x): {log_value}")
print(f"Recovered: {recovered}")
print(f"Difference: {abs(original - recovered)}")
< /code>
Ausgabe: < /p>
log10(x): 21.072099696512918
Recovered: 1.1805916208104748e+21
Difference: 786432.0
< /code>
Manchmal ist der Unterschied gering, aber wenn ich mit extrem großen Werten arbeite oder eine hohe Genauigkeit benötige, wird dieser kleine Fehler signifikant. < /p>
Gibt es eine Möglichkeit, diesen Unterschied zu kontrollieren oder zu minimieren? Vielleicht mit Bibliotheken mit höherer Präzision wie Dezimal- oder MPMath oder völlig unterschiedliche Ansätze, um große Zahlen mit weniger Verlust in einen kleineren Raum zuzuordnen?
Danke im Voraus!
Problem mit Log10 (x) und genaue Wiederherstellung großer Zahlen genau wiederherstellen ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post
-
-
.NET 9.0 Wiederverbindungsverzögerung der Modalverzögerung zur Wiederherstellung
by Anonymous » » in C# - 0 Replies
- 6 Views
-
Last post by Anonymous
-
-
-
.NET 9.0 Wiederverbindungsverzögerung der Modalverzögerung zur Wiederherstellung
by Anonymous » » in C# - 0 Replies
- 6 Views
-
Last post by Anonymous
-