[Haskell-cafe] FFI to double constants, printf
John Van Enk
vanenkj at gmail.com
Fri Jul 17 18:59:37 EDT 2009
You probably want something like printf("%.10Lg",d);. Here's a shot C
example and its output:
#include <stdio.h>
int main(int argc, char * argv[])
{
long double d = 0.123456789;
printf("%.30Lf\n", d);
printf("%.20Lg\n", d);
printf("%.20Le\n", d);
}
/*
0.123456788999999997336054491370
0.12345678899999999734
1.23456788999999997336e-01
*/
On Fri, Jul 17, 2009 at 6:41 PM, Maurício<briqueabraque at yahoo.com> wrote:
> When we printf doubles from C (like when using hsc2hs to bind to a
> constant) we can get something that's not valid Haskell. See these
> 2 examples:
>
> 3.40282347e+38F
>
> inf
>
> Do you know some way to printf a double using printf (or any other
> standard function) that's always going to give me valid Haskell
> text, even in special cases?
>
> Thanks,
> Maurício
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
More information about the Haskell-Cafe
mailing list