Migliore risposta
In Python, puoi conoscere il tipo di set di dati in qualsiasi programma, usando type () funzione.
Se un numero è float, il codice stamperà comunque il tipo. Un esempio:
a = 2 #integer
b = "Cosmos" #string
c = 3.4 #float
print(type(a))
print(type(b))
print(type(c))
Loutput mostrerà naturalmente il tipo di dati di ciascuno, con il valore nella variabile c come float. Quindi, questo è il modo più semplice e veloce per sapere se un tipo di dati è float.
Spero aiuta 🙂
Risposta
Dipende dalla lingua. Alcune lingue (come JavaScript) hanno un operatore typeof
che puoi utilizzare per distinguere. Sebbene in JavaScript, questo non ti aiuterà, poiché non esiste un numero intero in JavaScript. JavaScript ha un tipo di numero unificato che incapsula sia numeri interi che float, quindi i modi per verificarli includono
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
Se stai usando C (o un linguaggio che ha un sistema di tipi nominali statici), puoi fare qualcosa di simile:
(n - (int) n) > 0
Quello che succede qui è che loperatore (int) esegue il cast del tipo del suo operando per forzarlo ad essere un numero intero. questo “taglia” la parte decimale, avendo così lo stesso effetto di Math.floor di JavaScript.
Tuttavia, cè un avvertimento. A volte, piccole differenze sono troppo piccole per loperatore di uguaglianza. 1 == 0.9999999999999999
è falso, ma 1 == 0.99999999999999999
è vero. In C, ad esempio, potresti dover sostituire > 0
con > FLT\_EPSILON
e #include
. FLT\_EPSILON è una costante che rappresenta il più piccolo float rappresentabile. Puoi usarlo quando differisci due float e assicurati che non si confrontino erroneamente uguali. Puoi farlo sottraendoli e controllando che la differenza sia maggiore di (“non uguale”) o minore di o uguale a (“uguale”) FLT\_EPSILON.