Hvordan sjekke om et tall er en flottør i Python


Beste svaret

I Python kan du vite hvilken type datasett i hvilket som helst program ved å bruke type () -funksjon.

Hvis et tall er flytende, vil koden uansett skrive ut typen. Et eksempel:

a = 2 #integer

b = "Cosmos" #string

c = 3.4 #float

print(type(a))

print(type(b))

print(type(c))

Utgangen vil naturlig vise datatype for hver, med verdien i variabel c som float. Derfor er dette den enkleste og raskeste måten å vite om en datatype flyter.

Håper det hjelper 🙂

Svar

Det kommer an på språket. Noen språk (som JavaScript) har en operatør typeof som du kan bruke til å se forskjellen. Selv om det er i JavaScript, hjelper dette deg ikke, ettersom det ikke er noe som heter heltall i JavaScript. JavaScript har en enhetlig nummertype som innkapsler både heltall og flyter, så måter du kan sjekke 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 bruker C (eller et språk som har et statisk system av nominell type), kan du gjøre noe lignende:

(n - (int) n) > 0

Det som skjer her er at operatøren (int) kaster sin operand for å tvinge den til å være et heltall. dette «klipper» av desimaldelen, og har dermed samme effekt som JavaScripts Math.floor.

Det er imidlertid en advarsel. Noen ganger er små forskjeller for små for likhetsoperatøren. 1 == 0.9999999999999999 er usant, men 1 == 0.99999999999999999 er sant. I C, for eksempel, må du faktisk erstatte > 0 med > FLT\_EPSILON og #include . FLT\_EPSILON er en konstant som representerer den minste representable flottøren. Du kan bruke den når du skiller mellom to flyter og være sikker på at de ikke feilaktig sammenligner like. Du gjør det ved å trekke dem og kontrollere at forskjellen er større enn («ikke lik») eller mindre enn eller lik («lik») FLT\_EPSILON.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *