Cum să verificați dacă un număr este un float în Python


Cel mai bun răspuns

În Python, puteți cunoaște tipul de set de date din orice program, utilizând funcția type () .

Dacă un număr este float, codul va imprima tipul oricum. Un exemplu:

a = 2 #integer

b = "Cosmos" #string

c = 3.4 #float

print(type(a))

print(type(b))

print(type(c))

Ieșirea va arăta în mod natural tipul de date al fiecăruia, valoarea din variabila c fiind float. Prin urmare, acesta este cel mai simplu și mai rapid mod de a afla dacă un tip de date este float.

Hope ajută 🙂

Răspuns

Depinde de limbă. Unele limbi (cum ar fi JavaScript) au un operator typeof pe care îl puteți utiliza pentru a face diferența. Deși în JavaScript, acest lucru nu vă va ajuta, deoarece nu există un număr întreg în JavaScript. JavaScript are un tip de număr unificat care încapsulează atât numere întregi cât și flotante, astfel încât modalitățile prin care puteți verifica acolo includ

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

Dacă utilizați C (sau un limbaj care are un sistem static de tip nominal), puteți face ceva similar:

(n - (int) n) > 0

Ceea ce se întâmplă aici este că operatorul (int) își aruncă operandul pentru a-l forța să fie un număr întreg. acest „smulge” partea zecimală, având astfel același efect ca Math.floor JavaScript.

Totuși, există o singură avertizare. Uneori, diferențele mici sunt prea mici pentru operatorul de egalitate. 1 == 0.9999999999999999 este fals, dar 1 == 0.99999999999999999 este adevărat. În C, de exemplu, poate fi necesar să înlocuiți > 0 cu > FLT\_EPSILON și #include . FLT\_EPSILON este o constantă care reprezintă cel mai mic float reprezentabil. Îl puteți folosi atunci când diferențiați două flotante și asigurați-vă că acestea nu vor compara în mod eronat egal. Faceți acest lucru scăzându-le și verificând dacă diferența este mai mare decât („nu egal”) sau mai mică decât sau egală cu („egală”) FLT\_EPSILON.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *