So überprüfen Sie, ob eine Zahl in Python ein Float ist


Beste Antwort

In Python können Sie den Dataset-Typ in jedem Programm mithilfe der type () -Funktion.

Wenn eine Zahl float ist, gibt der Code den Typ trotzdem aus. Ein Beispiel:

a = 2 #integer

b = "Cosmos" #string

c = 3.4 #float

print(type(a))

print(type(b))

print(type(c))

Die Ausgabe zeigt natürlich jeweils den Datentyp an, wobei der Wert in Variable c float . Daher ist dies der einfachste und schnellste Weg, um festzustellen, ob ein Datentyp float ist.

Hoffnung es hilft 🙂

Antwort

Es hängt von der Sprache ab. Einige Sprachen (wie JavaScript) haben einen Operator typeof, mit dem Sie den Unterschied erkennen können. Obwohl dies in JavaScript nicht hilfreich ist, gibt es in JavaScript keine Ganzzahl. JavaScript hat einen einheitlichen Zahlentyp, der sowohl Ganzzahlen als auch Gleitkommazahlen kapselt. Sie können also überprüfen, ob

n - Math.floor(n) > 0

// 3.14 - 3.00 = 0.14. 0.14 > 0.00

n.toString().indexOf(".") == -1

// indexOf() returns -1 when it can’t find the given substring

Wenn Sie C verwenden (oder eine Sprache mit einem statischen System vom nominalen Typ), können Sie etwas Ähnliches tun:

(n - (int) n) > 0

Was hier passiert, ist, dass der Operator (int) seinen Operanden typisiert, um zu erzwingen, dass er eine Ganzzahl ist. Dies „schneidet“ den Dezimalteil ab und hat somit den gleichen Effekt wie JavaScripts Math.floor.

Es gibt jedoch eine Einschränkung. Manchmal sind kleine Unterschiede für den Gleichheitsoperator zu klein. 1 == 0.9999999999999999 ist falsch, aber 1 == 0.99999999999999999 ist wahr. In C müssen Sie beispielsweise möglicherweise > 0 durch > FLT\_EPSILON und #include ersetzen . FLT\_EPSILON ist eine Konstante, die den kleinsten darstellbaren Float darstellt. Sie können es verwenden, wenn Sie zwei Floats unterscheiden, und stellen Sie sicher, dass sie nicht fälschlicherweise gleich sind. Sie tun dies, indem Sie sie subtrahieren und überprüfen, ob die Differenz größer als („ungleich“) oder kleiner als oder gleich („gleich“) FLT\_EPSILON ist.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.