blob: 1d0b50a620dbae1aad1d019f7a5503bc7197f275 [file] [log] [blame]
Guido van Rossumf70e43a1991-02-19 12:39:46 +00001
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00002/* Float object interface */
3
4/*
Guido van Rossumcaa63801995-01-12 11:45:45 +00005PyFloatObject represents a (double precision) floating point number.
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00006*/
7
Fred Drakeea9cb5a2000-07-09 00:20:36 +00008#ifndef Py_FLOATOBJECT_H
9#define Py_FLOATOBJECT_H
10#ifdef __cplusplus
11extern "C" {
12#endif
13
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000014typedef struct {
Fred Drakeea9cb5a2000-07-09 00:20:36 +000015 PyObject_HEAD
16 double ob_fval;
Guido van Rossumcaa63801995-01-12 11:45:45 +000017} PyFloatObject;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000018
Guido van Rossum051ab121995-02-27 10:17:52 +000019extern DL_IMPORT(PyTypeObject) PyFloat_Type;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000020
Guido van Rossumcaa63801995-01-12 11:45:45 +000021#define PyFloat_Check(op) ((op)->ob_type == &PyFloat_Type)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022
Fred Drakeea9cb5a2000-07-09 00:20:36 +000023extern DL_IMPORT(PyObject *) PyFloat_FromString(PyObject*, char**);
24extern DL_IMPORT(PyObject *) PyFloat_FromDouble(double);
25extern DL_IMPORT(double) PyFloat_AsDouble(PyObject *);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000026
27/* Macro, trading safety for speed */
Guido van Rossum2981bc71997-08-02 02:40:58 +000028#define PyFloat_AS_DOUBLE(op) (((PyFloatObject *)(op))->ob_fval)
Guido van Rossuma3309961993-07-28 09:05:47 +000029
30#ifdef __cplusplus
31}
32#endif
33#endif /* !Py_FLOATOBJECT_H */