Paras vastaus
Pythonissa voit tietää minkä tahansa ohjelman datajoukon tyypin type () -funktio.
Jos numero on kelluva, koodi tulostaa tyypin joka tapauksessa. Esimerkki:
a = 2 #integer
b = "Cosmos" #string
c = 3.4 #float
print(type(a))
print(type(b))
print(type(c))
Lähdössä näkyy luonnollisesti jokaisen tietotyyppi, muuttujan c arvon ollessa float. Näin ollen tämä on helpoin ja nopein tapa tietää, onko tietotyyppi kelluva.
Toivottavasti se auttaa 🙂
Vastaa
Se riippuu kielestä. Joillakin kielillä (kuten JavaScript) on typeof
-operaattori, jonka avulla voit kertoa eron. Vaikka se ei ole JavaScriptiä, se ei auta sinua, koska JavaScriptissä ei ole kokonaislukua. JavaScriptillä on yhtenäinen numerotyyppi, joka kapseloi sekä kokonaislukuja että kelluvia osia, joten tapoja, joilla voit tarkistaa ne, ovat
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
Jos käytät C: tä (tai kieltä, jolla on staattinen, nimellistyyppinen järjestelmä), voit tehdä jotain vastaavaa:
(n - (int) n) > 0
Tässä tapahtuu, että (int) -operaattori heittää operandin pakottaakseen sen olemaan kokonaisluku. tämä ”katkaisee” desimaaliosan, jolloin sillä on sama vaikutus kuin JavaScriptin Math.floorilla.
On kuitenkin yksi varoitus. Joskus pienet erot ovat liian pienet tasa-arvooperaattorille. 1 == 0.9999999999999999
on väärä, mutta 1 == 0.99999999999999999
on totta. Esimerkiksi C: ssä sinun on ehkä korvattava > 0
sanoilla > FLT\_EPSILON
ja #include
. FLT\_EPSILON on vakio, joka edustaa pienintä edustettavaa kelluketta. Voit käyttää sitä levittäessäsi kahta kelluketta ja varmista, että niitä ei verrata virheellisesti yhtä suuriksi. Teet sen vähentämällä ne ja tarkistamalla, että ero on suurempi kuin (”ei yhtä”) tai pienempi tai yhtä suuri kuin (”yhtä”) FLT\_EPSILON.