Najlepsza odpowiedź
W Pythonie możesz poznać typ zbioru danych w dowolnym programie, używając type () .
Jeśli liczba jest liczbą zmiennoprzecinkową, kod i tak wypisze typ. Przykład:
a = 2 #integer
b = "Cosmos" #string
c = 3.4 #float
print(type(a))
print(type(b))
print(type(c))
Dane wyjściowe w naturalny sposób pokażą typ danych każdego z nich, przy czym wartość zmiennej c to float. Dlatego jest to najłatwiejszy i najszybszy sposób sprawdzenia, czy typ danych to float.
Mam nadzieję to pomaga 🙂
Odpowiedź
To zależy od języka. Niektóre języki (np. JavaScript) mają operator typeof
, którego można użyć do określenia różnicy. Chociaż w JavaScript, to ci nie pomoże, ponieważ w JavaScript nie ma czegoś takiego jak liczba całkowita. JavaScript ma ujednolicony typ liczb, który zawiera zarówno liczby całkowite, jak i zmiennoprzecinkowe, więc sposoby ich sprawdzenia obejmują
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
Jeśli używasz języka C (lub języka, który ma statyczny, nominalny system typów), możesz zrobić coś podobnego:
(n - (int) n) > 0
To, co się tutaj dzieje, polega na tym, że operator (int) rzuca swój operand, aby wymusić na nim bycie liczbą całkowitą. To „odcina” część dziesiętną, dając w ten sposób ten sam efekt, co JavaScript Math.floor.
Jest jednak jedno zastrzeżenie. Czasami małe różnice są zbyt małe dla operatora równości. 1 == 0.9999999999999999
ma wartość fałsz, ale 1 == 0.99999999999999999
jest prawdziwe. Na przykład w języku C może być konieczne zastąpienie > 0
słowami > FLT\_EPSILON
i #include
. FLT\_EPSILON jest stałą reprezentującą najmniejszą reprezentowalną liczbę zmiennoprzecinkową. Możesz go użyć podczas porównywania dwóch pływaków i mieć pewność, że nie będą one błędnie porównywać równych. Robisz to, odejmując je i sprawdzając, czy różnica jest większa niż („nie równa”) lub mniejsza lub równa („równa”) FLT\_EPSILON.