Python | Float-Typ und seine Methoden
Der float
Typ in Python repräsentiert die Gleitkommazahl. Float wird zur Darstellung reeller Zahlen verwendet und mit einem Dezimalpunkt geschrieben, der den ganzzahligen und den gebrochenen Teil teilt. Zum Beispiel sind 97,98, 32,3 + e18, -32,54e100 alle Gleitkommazahlen.
Python-Float-Werte werden als 64-Bit-Werte mit doppelter Genauigkeit dargestellt. Der Maximalwert, den eine Gleitkommazahl haben kann, beträgt ca. 1,8 x 10 308 . Jede größere Zahl wird durch die Zeichenfolge inf
in Python angezeigt .
(
1.7e308
)
(
1.82e308
)
Ausgabe:
1,7e + 308 inf
Gleitkommazahlen werden in der Computerhardware als (binäre) Brüche der Basis 2 dargestellt. Zum Beispiel hat der Dezimalbruch 0,125 den Wert 1/10 + 2/100 + 5/1000, und auf die gleiche Weise hat der binäre Bruch 0,001 den Wert 0/2 + 0/4 + 1/8. Diese beiden Brüche haben identische Werte. Der einzige wirkliche Unterschied besteht darin, dass der erste in der Bruchnotation der Basis 10 und der zweite in der Basis 2 geschrieben ist.
Leider können die meisten Dezimalbrüche nicht genau als binäre Brüche dargestellt werden. Dies hat zur Folge, dass die von Ihnen eingegebenen dezimalen Gleitkommazahlen im Allgemeinen nur durch die tatsächlich in der Maschine gespeicherten binären Gleitkommazahlen angenähert werden.
Der float
Typ implementiert die numbers.Real
abstrakte Basisklasse. Gibt einen Ausdruck zurück, der in eine Gleitkommazahl konvertiert wird. float
hat auch die folgenden zusätzlichen Methoden:
float.as_integer_ratio(): Gibt ein Paar von Ganzzahlen zurück, deren Verhältnis genau dem tatsächlichen Float mit positivem Nenner entspricht. Bei Unendlichkeiten werden Überlauffehler und Wertefehler bei Not a number (NaNs) ausgelöst.
def
frac(d):
b
=
d.as_integer_ratio()
return
b
if
__name__
=
=
'__main__'
:
b
=
frac(
3.5
)
(b[
0
],
"/"
, b[
1
])
Ausgabe:
7/2
float.is_integer(): Gibt True zurück, falls die float-Instanz mit einem ganzzahligen Wert endlich ist, andernfalls False.
def
booln():
((
-
5.0
).is_integer())
((
4.8
).is_integer())
(
float
.is_integer(
275.0
))
if
__name__
=
=
'__main__'
:
booln()
Ausgabe:
Wahr Falsch Wahr
float.hex(): Gibt eine Darstellung einer Gleitkommazahl als hexadezimale Zeichenfolge zurück.
def
frac(a):
a
=
float
.
hex
(
35.0
)
return
a
if
__name__
=
=
'__main__'
:
b
=
frac(
35.0
)
(b)
Ausgabe:
'0x1.1800000000000p + 5'
float.fromhex (s): Gibt das Float zurück, das durch eine hexadezimale Zeichenfolge s dargestellt wird. Zeichenfolgen können führende und nachfolgende Leerzeichen haben.
def
frac(a):
a
=
float
.fromhex(
'0x1.1800000000000p+5'
)
return
a
if
__name__
=
=
'__main__'
:
b
=
frac(
'0x1.1800000000000p+5'
)
(b)
Ausgabe:
35.0
Hinweis: float.hex() ist eine Instanzmethode, float.fromhex() ist eine Klassenmethode.