Bedste svar
I Python kan du kende typen af datasæt i ethvert program ved hjælp af type () funktion.
Hvis et tal er flydende, vil koden alligevel udskrive typen. Et eksempel:
a = 2 #integer
b = "Cosmos" #string
c = 3.4 #float
print(type(a))
print(type(b))
print(type(c))
Outputtet viser naturligvis datatype for hver, hvor værdien i variabel c er float. Derfor er dette den nemmeste og hurtigste måde at vide, om en datatype flyder.
Hope det hjælper 🙂
Svar
Det afhænger af sproget. Nogle sprog (som JavaScript) har en typeof
operator, som du kan bruge til at fortælle forskellen. Selvom i JavaScript, vil dette ikke hjælpe dig, da der ikke er noget som et heltal i JavaScript. JavaScript har en ensartet nummertype, der indkapsler både heltal og flyder, så måder du kan kontrollere der inkluderer
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
Hvis du bruger C (eller et sprog, der har et statisk system med nominel type), kan du gøre noget lignende:
(n - (int) n) > 0
Hvad der sker her er, at (int) operatøren typen kaster sin operand for at tvinge den til at være et heltal. dette “klipper” decimaldelen og har således den samme effekt som JavaScripts Math.floor.
Der er dog en advarsel. Nogle gange er små forskelle for små til ligestillingsoperatøren. 1 == 0.9999999999999999
er falsk, men 1 == 0.99999999999999999
er sandt. I C skal du f.eks. Faktisk erstatte > 0
med > FLT\_EPSILON
og #include
. FLT\_EPSILON er en konstant, der repræsenterer den mindste repræsentative float. Du kan bruge det, når du adskiller to flyder, og sørg for, at de ikke fejlagtigt sammenligner lige. Du gør det ved at trække dem og kontrollere, at forskellen er større end (“ikke lig”) eller mindre end eller lig med (“lige”) FLT\_EPSILON.