Sådan kontrolleres, om et tal er en float i Python


Bedste svar

I Python kan du kende typen af ​​datasæt i ethvert program ved hjælp af type () funktion.

Hvis et tal er flydende, vil koden alligevel udskrive typen. Et eksempel:

a = 2 #integer

b = "Cosmos" #string

c = 3.4 #float

print(type(a))

print(type(b))

print(type(c))

Outputtet viser naturligvis datatype for hver, hvor værdien i variabel c er float. Derfor er dette den nemmeste og hurtigste måde at vide, om en datatype flyder.

Hope det hjælper 🙂

Svar

Det afhænger af sproget. Nogle sprog (som JavaScript) har en typeof operator, som du kan bruge til at fortælle forskellen. Selvom i JavaScript, vil dette ikke hjælpe dig, da der ikke er noget som et heltal i JavaScript. JavaScript har en ensartet nummertype, der indkapsler både heltal og flyder, så måder du kan kontrollere der inkluderer

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

Hvis du bruger C (eller et sprog, der har et statisk system med nominel type), kan du gøre noget lignende:

(n - (int) n) > 0

Hvad der sker her er, at (int) operatøren typen kaster sin operand for at tvinge den til at være et heltal. dette “klipper” decimaldelen og har således den samme effekt som JavaScripts Math.floor.

Der er dog en advarsel. Nogle gange er små forskelle for små til ligestillingsoperatøren. 1 == 0.9999999999999999 er falsk, men 1 == 0.99999999999999999 er sandt. I C skal du f.eks. Faktisk erstatte > 0 med > FLT\_EPSILON og #include . FLT\_EPSILON er en konstant, der repræsenterer den mindste repræsentative float. Du kan bruge det, når du adskiller to flyder, og sørg for, at de ikke fejlagtigt sammenligner lige. Du gør det ved at trække dem og kontrollere, at forskellen er større end (“ikke lig”) eller mindre end eller lig med (“lige”) FLT\_EPSILON.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *