Please refer to the GnuCash texinfo documentation for details on the numeric functions. (The texinfo will someday be brought inline, here, into this file).
|
Files |
file | gnc-numeric.h |
| An exact-rational-number library for gnucash.
|
Data Structures |
struct | _gnc_numeric |
Constructors |
gnc_numeric | gnc_numeric_create (gint64 num, gint64 denom) |
gnc_numeric | gnc_numeric_zero (void) |
gnc_numeric | double_to_gnc_numeric (double in, gint64 denom, gint how) |
const gchar * | string_to_gnc_numeric (const gchar *str, gnc_numeric *n) |
gnc_numeric | gnc_numeric_error (int error_code) |
Value accessors |
gint64 | gnc_numeric_num (gnc_numeric a) |
gint64 | gnc_numeric_denom (gnc_numeric a) |
double | gnc_numeric_to_double (gnc_numeric in) |
gchar * | gnc_numeric_to_string (gnc_numeric n) |
Tests |
int | gnc_numeric_check (gnc_numeric a) |
int | gnc_numeric_zero_p (gnc_numeric a) |
int | gnc_numeric_compare (gnc_numeric a, gnc_numeric b) |
int | gnc_numeric_negative_p (gnc_numeric a) |
int | gnc_numeric_positive_p (gnc_numeric a) |
int | gnc_numeric_eq (gnc_numeric a, gnc_numeric b) |
int | gnc_numeric_equal (gnc_numeric a, gnc_numeric b) |
int | gnc_numeric_same (gnc_numeric a, gnc_numeric b, gint64 denom, gint how) |
Arithmetic operations |
gnc_numeric | gnc_numeric_add (gnc_numeric a, gnc_numeric b, gint64 denom, gint how) |
gnc_numeric | gnc_numeric_sub (gnc_numeric a, gnc_numeric b, gint64 denom, gint how) |
gnc_numeric | gnc_numeric_mul (gnc_numeric a, gnc_numeric b, gint64 denom, gint how) |
gnc_numeric | gnc_numeric_div (gnc_numeric a, gnc_numeric b, gint64 denom, gint how) |
gnc_numeric | gnc_numeric_neg (gnc_numeric a) |
gnc_numeric | gnc_numeric_abs (gnc_numeric a) |
gnc_numeric | gnc_numeric_add_fixed (gnc_numeric a, gnc_numeric b) |
gnc_numeric | gnc_numeric_sub_fixed (gnc_numeric a, gnc_numeric b) |
Arithmetic functions with exact error returns |
gnc_numeric | gnc_numeric_add_with_error (gnc_numeric a, gnc_numeric b, gint64 denom, gint how, gnc_numeric *error) |
gnc_numeric | gnc_numeric_sub_with_error (gnc_numeric a, gnc_numeric b, gint64 denom, gint how, gnc_numeric *error) |
gnc_numeric | gnc_numeric_mul_with_error (gnc_numeric a, gnc_numeric b, gint64 denom, gint how, gnc_numeric *error) |
gnc_numeric | gnc_numeric_div_with_error (gnc_numeric a, gnc_numeric b, gint64 denom, gint how, gnc_numeric *error) |
Change denominator |
gnc_numeric | gnc_numeric_convert (gnc_numeric in, gint64 denom, gint how) |
gnc_numeric | gnc_numeric_convert_with_error (gnc_numeric in, gint64 denom, gint how, gnc_numeric *error) |
gnc_numeric | gnc_numeric_reduce (gnc_numeric in) |
Defines |
#define | GNC_NUMERIC_RND_MASK 0x0000000f |
#define | GNC_NUMERIC_DENOM_MASK 0x000000f0 |
#define | GNC_NUMERIC_SIGFIGS_MASK 0x0000ff00 |
#define | GNC_DENOM_AUTO 0 |
#define | GNC_DENOM_RECIPROCAL(a) (- ( a )) |
#define | GNC_DENOM_SIGFIGS(a) ( ((( a ) & 0xff) << 8) | GNC_DENOM_SIGFIG) |
#define | GNC_NUMERIC_GET_SIGFIGS(a) ( (( a ) & 0xff00 ) >> 8) |
Typedefs |
typedef _gnc_numeric | gnc_numeric |
| An exact-number type.
|
Enumerations |
enum | {
GNC_RND_FLOOR = 0x01,
GNC_RND_CEIL = 0x02,
GNC_RND_TRUNC = 0x03,
GNC_RND_PROMOTE = 0x04,
GNC_RND_ROUND_HALF_DOWN = 0x05,
GNC_RND_ROUND_HALF_UP = 0x06,
GNC_RND_ROUND = 0x07,
GNC_RND_NEVER = 0x08
} |
enum | {
GNC_DENOM_EXACT = 0x10,
GNC_DENOM_REDUCE = 0x20,
GNC_DENOM_LCD = 0x30,
GNC_DENOM_FIXED = 0x40,
GNC_DENOM_SIGFIG = 0x50
} |
enum | {
GNC_ERROR_OK = 0,
GNC_ERROR_ARG = -1,
GNC_ERROR_OVERFLOW = -2,
GNC_ERROR_DENOM_DIFF = -3,
GNC_ERROR_REMAINDER = -4
} |