Hur man kontrollerar om ett nummer är en flottör i Python


Bästa svaret

I Python kan du veta vilken typ av dataset i vilket program som helst med hjälp av typ () -funktion.

Om ett nummer är flytande kommer koden att skrivas ut ändå. Ett exempel:

a = 2 #integer

b = "Cosmos" #string

c = 3.4 #float

print(type(a))

print(type(b))

print(type(c))

Utgången visar naturligtvis datatyp för varje, med värdet i variabel c som float. Detta är därför det enklaste och snabbaste sättet att veta om en datatyp är flytande.

Hope det hjälper 🙂

Svar

Det beror på språket. Vissa språk (som JavaScript) har en typeof -operator som du kan använda för att se skillnaden. Även om det i JavaScript kommer det inte att hjälpa dig, eftersom det inte finns något som heter ett heltal i JavaScript. JavaScript har en enhetlig nummertyp som inkapslar både heltal och flottörer, så sätt du kan kontrollera där inkluderar

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

Om du använder C (eller ett språk som har ett statiskt system av nominellt typ) kan du göra något liknande:

(n - (int) n) > 0

Vad som händer här är att operatören (int) kastar sin operand för att tvinga den att vara ett heltal. detta ”klipper” av decimaldelen och får därmed samma effekt som Javascript Math.floor.

Det finns dock en varning. Ibland är små skillnader för små för jämställdhetsoperatören. 1 == 0.9999999999999999 är falskt, men 1 == 0.99999999999999999 är sant. I C kan du till exempel behöva ersätta > 0 med > FLT\_EPSILON och #include . FLT\_EPSILON är en konstant som representerar den minsta representerbara flottören. Du kan använda den när du skiljer två flottörer och vara säker på att de inte felaktigt jämför lika. Du gör det genom att subtrahera dem och kontrollera att skillnaden är större än (”inte lika”) eller mindre än eller lika med (”lika”) FLT\_EPSILON.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *