Jak zkontrolovat, zda je číslo plovoucí v Pythonu


Nejlepší odpověď

V Pythonu můžete znát typ datové sady v libovolném programu pomocí funkce type () .

Pokud je číslo plovoucí, kód přesto vytiskne typ. Příklad:

a = 2 #integer

b = "Cosmos" #string

c = 3.4 #float

print(type(a))

print(type(b))

print(type(c))

Výstup bude přirozeně zobrazovat datový typ každého z nich, přičemž hodnota v proměnné c bude float. Toto je tedy nejjednodušší a nejrychlejší způsob, jak zjistit, zda je datový typ float.

Doufám to pomáhá 🙂

Odpověď

Záleží na jazyce. Některé jazyky (například JavaScript) mají typeof operátor, kterým můžete rozdíl poznat. I když v JavaScriptu vám to nepomůže, protože v JavaScriptu neexistuje nic jako celé číslo. JavaScript má jednotný typ čísla, který zapouzdřuje celá i plovoucí čísla, takže způsoby, jak je můžete zkontrolovat, zahrnují

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

Pokud používáte C (nebo jazyk, který má statický systém nominálního typu), můžete udělat něco podobného:

(n - (int) n) > 0

Co se zde stane, je to, že operátor (int) vrhá svůj operand, aby jej vynutil na celé číslo. toto „odstřihne“ desítkovou část, takže má stejný účinek jako JavaScript Math.floor.

Existuje však jedna výhrada. Někdy jsou malé rozdíly pro operátora rovnosti příliš malé. 1 == 0.9999999999999999 má hodnotu false, ale 1 == 0.99999999999999999 hodnotu true. Například v jazyce C možná budete muset nahradit > 0 > FLT\_EPSILON a #include . FLT\_EPSILON je konstanta představující nejmenší reprezentovatelný float. Můžete jej použít při difúzi dvou plováků a ujistěte se, že se nebudou chybně porovnávat stejně. Uděláte to tak, že je odečtete a zkontrolujete, zda je rozdíl větší než („nerovná se“) nebo menší než nebo rovný („rovný“) FLT\_EPSILON.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *