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.