On 8/7/2013 6:38 AM, coolh...@gmail.com wrote:
Hi,

A large double value gets changed when printed with %Lf
Values upto the following combination gives proper results
9 digits before decimal / 6 digits after decimal
e.g. of a value with 9 digits before decimal printed with %Lf
Input : 3435537287.32
Output : 3435537287.320000

Once I increase the digits before decimal to 10, the values printed with %Lf 
adds garbage value.
e.g. of a value with 10 digits before decimal printed with %Lf
Input : 34355372871.3487
Output : 34355372871.348701
As you can see from the above output the input value is changed.

Is there any compile time option for g++ that can be used so that the value 
is'nt changed?

::Code Snippet::
double d2 =  34355372871.3487;
double d4 =  3435537287.3487;

printf("d2 = %lf\n", d2);
printf("d4 = %lf\n", d4);


Thanks,
Hudson

For this, you'd need an option to do all calculations in decimal
instead of the usual binary, in order to avoid the roundoff
errors in converting from decimal to binary and back.  Perhaps
30 years ago, some computers supported an option to do this.
I haven't seen any sign that a significant number of more recent
computers do.

_______________________________________________
help-gplusplus mailing list
help-gplusplus@gnu.org
https://lists.gnu.org/mailman/listinfo/help-gplusplus

Reply via email to