Seite 1 von 1

Dezimalstellen von Float abschneiden und verwenden

Verfasst: Freitag 16. Januar 2026, 17:34
von kiaralle
Hallo,

ich komme wieder nicht weiter.
Gibt es etwas, mit dem ich von Float ohne Umwege die Dezimalstellen abtrennen kann?
Ich benötige nur die Dezimalstellen für eine Berechnung.

x = 1234.5678

Ich benötige 0.5678

Danke :-)

Re: Dezimalstellen von Float abschneiden und verwenden

Verfasst: Freitag 16. Januar 2026, 17:40
von __blackjack__
Verschiedene Möglichkeiten:

Code: Alles auswählen

In [9]: x
Out[9]: 1234.5678

In [10]: x % 1
Out[10]: 0.5678000000000338

In [11]: math.modf(x)
Out[11]: (0.5678000000000338, 1234.0)

In [12]: x - math.trunc(x)
Out[12]: 0.5678000000000338

Re: Dezimalstellen von Float abschneiden und verwenden

Verfasst: Freitag 16. Januar 2026, 17:47
von kiaralle
__blackjack__ hat geschrieben: Freitag 16. Januar 2026, 17:40 Verschiedene Möglichkeiten:

Code: Alles auswählen

In [9]: x
Out[9]: 1234.5678

In [10]: x % 1
Out[10]: 0.5678000000000338

In [11]: math.modf(x)
Out[11]: (0.5678000000000338, 1234.0)

In [12]: x - math.trunc(x)
Out[12]: 0.5678000000000338
Danke :wink:

Re: Dezimalstellen von Float abschneiden und verwenden

Verfasst: Freitag 16. Januar 2026, 18:15
von snafu

Code: Alles auswählen

x - int(x)

Re: Dezimalstellen von Float abschneiden und verwenden

Verfasst: Freitag 16. Januar 2026, 21:23
von Sirius3
Vorsicht bei negativen Zahlen:

Code: Alles auswählen

In [10]: x = -1234.5678

In [11]: x%1
Out[11]: 0.43219999999996617

In [12]: math.modf(x)
Out[12]: (-0.5678000000000338, -1234.0)

In [13]: x - math.trunc(x)
Out[13]: -0.5678000000000338

In [14]: x - int(x)
Out[14]: -0.5678000000000338

Re: Dezimalstellen von Float abschneiden und verwenden

Verfasst: Dienstag 20. Januar 2026, 06:15
von Pedroski55
Es geht auch so:

Code: Alles auswählen

# sollte auch mit num < 0 fertig werden
def dezi(num):
    if not type(num) == float:
        print(f'Eingabe: "{num}" nicht gut, nochmal versuchen ja?')
        return None    
    else:
        w = str(num)
        teile = w.split('.')
        dezimal = '0.' + teile[1]
        res = float(dezimal)
        if '-' in w:
            res = -res
        return res
    
res = dezi(12.3456789)
print(f'res = {res:.15e}')
print(f'res = {res:.15f}')
print(f'res = {res:.3g}')