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.