부동 소수점 객체¶
-
PyTypeObject PyFloat_Type¶
- …의 일부 안정 ABI.
이
PyTypeObject인스턴스는 파이썬 부동 소수점 형을 나타냅니다. 이것은 파이썬 계층에서float와 같은 객체입니다.
-
int PyFloat_Check(PyObject *p)¶
인자가
PyFloatObject나PyFloatObject의 서브 형이면 참을 반환합니다. 이 함수는 항상 성공합니다.
-
int PyFloat_CheckExact(PyObject *p)¶
인자가
PyFloatObject이지만PyFloatObject의 서브 형은 아니면 참을 반환합니다. 이 함수는 항상 성공합니다.
-
PyObject *PyFloat_FromString(PyObject *str)¶
- 반환값: 새 참조. …의 일부 안정 ABI.
str의 문자열 값을 기반으로
PyFloatObject객체를 만들거나, 실패하면NULL.
-
PyObject *PyFloat_FromDouble(double v)¶
- 반환값: 새 참조. …의 일부 안정 ABI.
v로부터
PyFloatObject객체를 만들거나, 실패하면NULL.
-
double PyFloat_AsDouble(PyObject *pyfloat)¶
- …의 일부 안정 ABI.
pyfloat 의 내용의 C double 표현을 반환합니다. pyfloat가 파이썬 부동 소수점 객체가 아니지만
__float__()메서드가 있으면, pyfloat를 float로 변환하기 위해 이 메서드가 먼저 호출됩니다.__float__()가 정의되지 않았으면__index__()로 대체합니다. 이 메서드는 실패하면-1.0을 반환하므로,PyErr_Occurred()를 호출하여 에러를 확인해야 합니다.버전 3.8에서 변경: 사용할 수 있으면
__index__()를 사용합니다.
-
PyObject *PyFloat_GetInfo(void)¶
- 반환값: 새 참조. …의 일부 안정 ABI.
float의 정밀도, 최솟값, 최댓값에 관한 정보를 포함한 structseq 인스턴스를 돌려줍니다. 헤더 파일
float.h를 감싸는 얇은 래퍼입니다.
-
Py_INFINITY¶
이 매크로는 양의 무한대를 나타내는 double 타입의 상수 표현식으로 확장됩니다.
이는 C11 표준
<math.h>헤더의INFINITY매크로와 동등합니다.버전 3.15부터 약하게 폐지 <Soft deprecated>.
-
Py_NAN¶
이 매크로는 조용한 NaN(qNaN) 값을 나타내는 double 타입의 상수 표현식으로 확장됩니다.
대부분의 플랫폼에서 이는 C11 표준
<math.h>헤더의NAN매크로와 동등합니다.
-
Py_HUGE_VAL¶
INFINITY와 동등합니다.버전 3.14부터 약하게 폐지 <Soft deprecated>.
-
Py_MATH_E¶
상수
math.e`의 정의(:c:expr:`double타입에 정확함).
-
Py_MATH_PI¶
상수
math.pi`의 정의(:c:expr:`double타입에 정확함).
-
Py_MATH_TAU¶
상수
math.tau`의 정의(:c:expr:`double타입에 정확함).Added in version 3.6.
-
Py_RETURN_INF(sign)¶
sign 의 부호에 따라 함수에서
math.inf또는-math.inf를 반환합니다.대부분의 플랫폼에서 이는 다음과 동등합니다:
return PyFloat_FromDouble(copysign(INFINITY, sign));
-
Py_IS_FINITE(X)¶
주어진 부동 소수점 수 X 가 유한체(즉, 정규, 비정규 또는 0이지만 무한대나 NaN이 아님)이면
1을 반환하고, 그렇지 않으면0을 반환합니다.버전 3.14부터 약하게 폐지 <Soft deprecated>: 대신
isfinite를 사용하십시오.
-
Py_IS_INFINITY(X)¶
주어진 부동 소수점 수 X 가 양의 무한대 또는 음의 무한대이면
1을 반환하고, 그렇지 않으면0을 반환합니다.버전 3.14부터 약하게 폐지 <Soft deprecated>: 대신
isinf를 사용하십시오.
-
Py_IS_NAN(X)¶
주어진 부동 소수점 수 X 가 NaN(not-a-number) 값이면
1을 반환하고, 그렇지 않으면0을 반환합니다.버전 3.14부터 약하게 폐지 <Soft deprecated>: 대신
isnan을 사용하십시오.
팩킹 및 언패킹 함수¶
팩 및 언팩 함수는 부동 소수점 값을 바이트 문자열로 저장하는 효율적인 플랫폼 독립적 방식을 제공합니다. Pack 루틴은 C double 로부터 바이트 문자열을 생성하고, Unpack 루틴은 해당 바이트 문자열로부터 C double 을 생성합니다. 접미사(2, 4 또는 8)는 바이트 문자열의 바이트 수를 지정합니다.
2바이트 형식은 IEEE 754 binary16 반 정밀도(half-precision) 형식입니다.
4바이트 형식은 IEEE 754 binary32 단정밀도(single-precision) 형식입니다.
8바이트 형식은 IEEE 754 binary64 배정밀도(double-precision) 형식입니다.
일부 플랫폼(예를 들어 32비트 모드에서의 x86 시스템)에서 언패킹 시 NaN 타입이 유지되지 않을 수 있습니다(신호형 NaN이 조용한 NaN으로 변함).
double 타입이 IEEE 754 binary64 배정밀도 형식을 따른다고 가정합니다. 이 가정이 사실이 아닐 경우 발생하는 상황은 부분적으로 우연에 맡겨져 있습니다(안타깝게도). IEEE 754가 지원하는 것보다 더 높은 정밀도나 더 넓은 동적 범위를 가진 비-IEEE 플랫폼에서는 모든 값이 패킹될 수 없으며, IEEE 754보다 낮은 정밀도나 좁은 동적 범위를 가진 비-IEEE 플랫폼에서는 모든 값이 언패킹될 수 없습니다. INF 및 NaN과 같은 특수 숫자(해당 플랫폼에 존재할 경우)의 패킹이 올바르게 처리되지 않을 수 있으며, IEEE INF 또는 NaN을 포함하는 바이트 문자열을 언패킹하려고 시도하면 예외가 발생할 수 있습니다.
Added in version 3.11.
팩 기능¶
팩 루틴은 p 부터 시작하여 2, 4 또는 8바이트를 작성합니다. le 는 int 인자로, 리틀 엔디안 형식(지수가 마지막에 위치)을 원할 경우 0이 아닌 값, 빅 엔디안 형식(지수가 처음에 위치)을 원할 경우 0을 할당합니다. 네이티브 엔디안을 선택하려면 PY_LITTLE_ENDIAN 상수를 사용하십시오. 이 상수는 빅 엔디언 프로세서에서는 0 과 같고, 리틀 엔디언 프로세서에서는 1 과 같습니다.
반환값: 모든 것이 정상이면 0, 오류 시(및 예외가 설정됨, 대부분의 경우 OverflowError) -1.
-
int PyFloat_Pack2(double x, char *p, int le)¶
C double을 IEEE 754 binary16 반 정밀도 형식으로 패킹합니다.
-
int PyFloat_Pack4(double x, char *p, int le)¶
C double을 IEEE 754 binary32 단정밀도 형식으로 패킹합니다.
-
int PyFloat_Pack8(double x, char *p, int le)¶
C double을 IEEE 754 binary64 배정밀도 형식으로 패킹합니다.
이 함수는 CPython에서 항상 성공합니다.
언패킹 기능¶
언패킹 루틴은 p 부터 시작하여 2, 4 또는 8바이트를 읽습니다. le 는 int 인자로, 바이트 문자열이 리틀 엔디안 형식(지수가 마지막에 위치)이면 0이 아닌 값, 빅 엔디안(지수가 처음에 위치)이면 0을 할당합니다. 네이티브 엔디안을 선택하려면 PY_LITTLE_ENDIAN 상수를 사용하십시오. 이 상수는 빅 엔디언 프로세서에서는 0 과 같고, 리틀 엔디언 프로세서에서는 1 과 같습니다.
반환값: 언패킹된 double 값. 오류 시 이 값은 -1.0 이며 PyErr_Occurred() 가 참이 됩니다(또한 예외가 설정되며, 대개 OverflowError 입니다).
이 함수들은 CPython에서 항상 성공합니다.
-
double PyFloat_Unpack2(const char *p, int le)¶
IEEE 754 binary16 반 정밀도 형식을 C double로 언패킹합니다.
-
double PyFloat_Unpack4(const char *p, int le)¶
IEEE 754 binary32 단정밀도 형식을 C double로 언패킹합니다.
-
double PyFloat_Unpack8(const char *p, int le)¶
IEEE 754 binary64 배정밀도 형식을 C double로 언패킹합니다.