Hogyan ellenőrizhető, hogy egy szám úszó-e a Pythonban?


Legjobb válasz

A Pythonban megismerheti bármely program adatkészletének típusát a type () függvény.

Ha egy szám lebeg, a kód úgyis kinyomtatja a típust. Példa:

a = 2 #integer

b = "Cosmos" #string

c = 3.4 #float

print(type(a))

print(type(b))

print(type(c))

A kimenet természetesen mindegyik adattípusát megjeleníti, a c változó értéke float. Ezért ez a legegyszerűbb és leggyorsabb módja annak, hogy megtudjuk, lebegnek-e egy adattípus.

Remélem segít 🙂

Válasz

A nyelvtől függ. Egyes nyelvek (például a JavaScript) typeof operátorral rendelkeznek, amellyel meg lehet különböztetni a különbséget. Bár a JavaScript-ben ez nem segít, mivel a JavaScript-ben nincs egész szám. A JavaScript egységes számtípussal rendelkezik, amely egész számokat és lebegőket foglal magában, így ellenőrizheti, hogy ott ellenőrizheti-e a következőt:

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

Ha C-t (vagy statikus, névleges típusú rendszert használó nyelvet) használ, akkor ehhez hasonlót is megtehet:

(n - (int) n) > 0

Itt az történik, hogy az (int) operátor tipizálja az operandusát, hogy egész számra kényszerítse. ez „levágja” a tizedes részt, így ugyanaz a hatása, mint a JavaScript Math.floor-jának.

Van azonban egy figyelmeztetés. Néha a kis különbségek túl kicsiek az esélyegyenlőség operátorához. A 1 == 0.9999999999999999 hamis, de a 1 == 0.99999999999999999 igaz. Például a C-ben előfordulhat, hogy a > 0 szöveget > FLT\_EPSILON és #include . Az FLT\_EPSILON a legkisebb reprezentálható úszót képviselő állandó. Használhatja két úszó diffúzálásakor, és győződjön meg arról, hogy nem fogják tévesen összehasonlítani az egyenlőt. Ezt úgy teheti meg, hogy kivonja őket, és ellenőrzi, hogy a különbség nagyobb-e („nem egyenlő”) vagy kisebb-e vagy egyenlő-e („egyenlő”) FLT\_EPSILON.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük