/** \page gncnumericexample gnc_numeric Example \section example EXAMPLE The following program finds the best ::gnc_numeric approximation to the \a math.h constant \a M_PI given a maximum denominator. For large denominators, the ::gnc_numeric approximation is accurate to more decimal places than will generally be needed, but in some cases this may not be good enough. For example, @verbatim M_PI = 3.14159265358979323846 245850922 / 78256779 = 3.14159265358979311599 (16 sig figs) 3126535 / 995207 = 3.14159265358865047446 (12 sig figs) 355 / 113 = 3.14159292035398252096 (7 sig figs) @endverbatim @verbatim #include #include #include int main(int argc, char ** argv) { gnc_numeric approx, best; double err, best_err=1.0; double m_pi = M_PI; gint64 denom; gint64 max; sscanf(argv[1], "%Ld", &max); for (denom = 1; denom < max; denom++) { approx = double_to_gnc_numeric (m_pi, denom, GNC_RND_ROUND); err = m_pi - gnc_numeric_to_double (approx); if (fabs (err) < fabs (best_err)) { best = approx; best_err = err; printf ("%Ld / %Ld = %.30f\n", gnc_numeric_num (best), gnc_numeric_denom (best), gnc_numeric_to_double (best)); } } } @endverbatim */