On 8/7/2013 6:38 AM, [email protected] 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 [email protected] https://lists.gnu.org/mailman/listinfo/help-gplusplus
