Python에서 숫자가 부동 소수점인지 확인하는 방법


우수 답변

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보다 크거나 ( “같지 않음”) 작거나 같음 ( “같음”)인지 확인합니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다