Kuinka tarkistaa, onko luku pyöreä Pythonissa


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.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *