Unexpected output of a simple GMP program
    Marc Glisse 
    marc.glisse at inria.fr
       
    Sat Jul 27 18:58:02 CEST 2013
    
    
  
On Sat, 27 Jul 2013, Jiri Simsa wrote:
> Hello,
>
> I am trying to use GMP in my project and to familiarize myself with GMP, I
For any new project that requires bigfloats, it is better to use mpfr (it 
uses gmp internally).
> wrote some simple programs. For one of them, I am seeing unexpected
> behavior and I am not sure what am I doing wrong.
>
> Here is the example in question:
> #include <gmp.h>
> int main() {
>  mpf_t x;
>  mpf_init(x);
>  mpf_set_si(x, 1);
>  gmp_printf("x = %F\n", x);
The examples in the manual use %Ff.
>  mpf_set_ui(x, 1);
>  gmp_printf("x = %F\n", x);
>  mpf_set_d(x, 1.0);
>  gmp_printf("x = %F\n", x);
>  mpf_clear(x);
>  return 0;
> }
>
> I compile this program with:
> g++ -o test test.c -lgmp
>
> When I run it, I see:
> x = 0.000000
> x = 0.000000
> x = 1.000001
>
> While I would expect to see:
> x = 1.000000
> x = 1.000000
> x = 1.000000
>
> Could someone please let me know why the actual output differs from my
> expectation? Thanks.
-- 
Marc Glisse
    
    
More information about the gmp-discuss
mailing list