digitalmars.D.learn - "%a" formatting differences
- bearophile (12/12) Dec 14 2009 Do you know what's causing the difference in the outouts?
- BCS (3/18) Dec 14 2009 Just a guess: D is correctly using double and C is assuming float? Try r...
- bearophile (5/7) Dec 14 2009 I have run the code again with the last D1 compiler, and now writeln is ...
Do you know what's causing the difference in the outouts? void main() { double d1 = 3.14159; printf("%a\n", d1); writefln("%a\n", d1); } Outputs: 0x1.921f9f01b866ep+1 0xc.90fcf80dc337p-2 A printf in C code compiled with GCC prints the same as the printf here. Bye, bearophile
Dec 14 2009
Hello bearophile,Do you know what's causing the difference in the outouts? void main() { double d1 = 3.14159; printf("%a\n", d1); writefln("%a\n", d1); } Outputs: 0x1.921f9f01b866ep+1 0xc.90fcf80dc337p-2 A printf in C code compiled with GCC prints the same as the printf here. Bye, bearophileJust a guess: D is correctly using double and C is assuming float? Try running it with d1 as a float to check.
Dec 14 2009
BCS:Just a guess: D is correctly using double and C is assuming float? Try running it with d1 as a float to check.I have run the code again with the last D1 compiler, and now writeln is giving the same result as printf. So probably it was a writefln bug that's already fixed. Sorry for the useless noise -.- Bye, bearophile
Dec 14 2009