Rozdział 4 · Python lubi liczby
Fraction są dokładnymi ułamkami zwyczajnymi
Gdy potrzebna jest nie dziesiętna, ale zwykła dokładna ułamek — licznik przez mianownik, bez przybliżenia.
Innym dokładnym narzędziem numerycznym ze standardowej biblioteki jest
Fractionzwykłym ułamkiem wymiernym „licznik/mianownik”
fraction_demo.py
from fractions import Fraction
third = Fraction(1, 3)
print(third) # 1/3
Arytmetyka z Fraction jest dokładna
fraction_math.py
from fractions import Fraction
result = Fraction(1, 3) + Fraction(1, 6)
print(result) # 1/2 — dokładnie, nie przybliżeniowo
Fraction z tekstu i float też jest różnicą
fraction_stroka.py
from fractions import Fraction
print(Fraction("0.1")) #1/10 – czytane z tekstu dziesiętnego poprawnie
print(Fraction(0.1)) #3602879701896397/36028797018963968 – odziedziczyłem podejście float!
Ta sama logika co z Decimal w 4.14:
Stwórz najpierw floattakie podejście już wcześniej miało miejsce
Fraction zdążyłem go otrzymać.
float, Decimal i Fraction obok siebie
| Tool | Przedstawia | Dokładny dla | Typowe zastosowanie |
|---|---|---|---|
float | Przybliżenie binarne | Potęgi dwójki i ich sumy | Nauka, pomiary, ogólne obliczenia |
Decimal | Dziesiętny | Wartości dziesiętne | Pieniądze, księgowość |
Fraction | Liczba wymierna p/q | Dowolny ułamek normalny | Dokładna arytmetyka wymierna |
float vs Decimal vs Fraction
Czy potrzebujesz regularnych obliczeń lub pomiarów?
→
float
Czy potrzebujesz precyzji dziesiętnej (pieniędzy)?
→
Decimal
Czy potrzebujesz dokładnej części p/q?
→
Fraction
Praktyka: Fraction i dokładne ułamki
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji