Re: printf and long double

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Oct 3, 2010 at 6:56 PM, Nanakos Chrysostomos
<nanakos@xxxxxxxxxxxx> wrote:
> Hi all,
> I have the above C code snippet. I am trying to get a resonable result in a fixed form with printf for
> a long double value but with no luck. What am I doing wrong?
>
> Thanks in advance.
>
> long.c
> -------------------------------------------------------------
> #include <stdio.h>
> #include <math.h>
>
> int main(void)
> {
>        long double c = powl(10.0L,30.0L);
>
>        printf("%llf %lle\n",c,c);
>
I think you want %llg instead of %llf.  g is for double-precision, f
is for single.
>
>        return 0;
> }
>
> ------------------------------------------------------------
>
> # gcc -DDOUBLE -msse2 -mfpmath=sse -m64 -m128bit-long-double  long.c -lm
> #./a.out
>
> 1000000000000000000024696061952.000000 1.000000e+30
>
> The second result is right but how can I get a fixed right result for the first one?
> The fixed precision should be a lot bigger than this according to the IEEE-754 standard.
> I am using a 64-bit machine with Debian Squeeze x86-64 version.
> -----------------------------------------------------------------------------------------
> Using built-in specs.
> Target: x86_64-linux-gnu
> Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.4-8' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
> Thread model: posix
> gcc version 4.4.5 20100728 (prerelease) (Debian 4.4.4-8)
> -----------------------------------------------------------------------------------------
> # gcc -dM -E -xc /dev/null | grep __LDBL_MAX__
> #define __LDBL_MAX__ 1.18973149535723176502e+4932L
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Assembler]     [Git]     [Kernel List]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [C Programming]     [Yosemite Campsites]     [Yosemite News]     [GCC Help]

  Powered by Linux