Postanowiłem więc spróbować rozwiązać zadanie domowe z fizyki, pisząc kilka skryptów python, aby rozwiązać problemy dla mnie. Jednym z problemów, na które napotykam, jest to, że znaczące liczby nie zawsze wydają się poprawne. Na przykład ten obsługuje cyfry znaczące poprawnie:Znaczące liczby w module dziesiętnym
from decimal import Decimal
>>> Decimal('1.0') + Decimal('2.0')
Decimal("3.0")
Ale tego nie robi:
>>> Decimal('1.00')/Decimal('3.00')
Decimal("0.3333333333333333333333333333")
Więc dwa pytania:
- Mam rację, że nie jest to oczekiwana kwota znaczące cyfry, czy muszę odświeżyć znaczącą cyfrową matematykę?
- Czy można to zrobić bez konieczności ręcznego ustawiania dokładności dziesiętnej? Oczywiście, jestem pewien, że mogę użyć numpy do zrobienia tego, ale chcę tylko wiedzieć, czy jest jakiś sposób na zrobienie tego z modułem dziesiętnym z ciekawości.
Co z 300/100? Twój kod zostałby nieprawidłowo ustawiony na 3.000 – Pyrolistical