우수 답변
Python에서는 type () 함수입니다.
숫자가 float이면 코드는 어쨌든 유형을 인쇄합니다. 예 :
a = 2 #integer
b = "Cosmos" #string
c = 3.4 #float
print(type(a))
print(type(b))
print(type(c))
출력은 자연스럽게 각 데이터 유형을 표시하며 변수 c의 값은 float. 따라서 데이터 유형이 float인지 알 수있는 가장 쉽고 빠른 방법입니다.
희망 도움이됩니다. 🙂
답변
언어에 따라 다릅니다. JavaScript와 같은 일부 언어에는 차이점을 구분하는 데 사용할 수있는 typeof
연산자가 있습니다. JavaScript에서는이 방법이 도움이되지 않습니다. JavaScript에는 정수와 같은 것이 없기 때문입니다. JavaScript에는 정수와 부동 소수점을 모두 캡슐화하는 통합 숫자 유형이 있으므로 확인할 수있는 방법은 다음과 같습니다.
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
C (또는 정적 명목 유형 시스템이있는 언어)를 사용하는 경우 다음과 유사한 작업을 수행 할 수 있습니다.
(n - (int) n) > 0
여기서 일어나는 일은 (int) 연산자가 피연산자를 유형 캐스팅하여 정수가되도록 강제하는 것입니다. 이것은 소수점 부분을 “잘라내서”JavaScript의 Math.floor와 동일한 효과를 갖습니다.
하지만 한 가지주의 사항이 있습니다. 때로는 등호 연산자에 대해 작은 차이가 너무 작습니다. 1 == 0.9999999999999999
는 false이지만 1 == 0.99999999999999999
는 true입니다. 예를 들어 C에서 실제로 > 0
를 > FLT\_EPSILON
및 #include
로 바꿔야 할 수 있습니다. . FLT\_EPSILON은 표현 가능한 가장 작은 부동 소수점을 나타내는 상수입니다. 두 개의 부동 소수점을 비교할 때 사용할 수 있으며 서로 잘못 비교되지 않도록합니다. 이를 빼고 차이가 FLT\_EPSILON보다 크거나 ( “같지 않음”) 작거나 같음 ( “같음”)인지 확인합니다.