使用 %Lf 打印时,较大的 double 值会更改 不超过以下组合的值会给出正确的结果 小数点前 9 位/小数点后 6 位 例如,使用 %Lf 打印的小数点前 9 位的值 输入:3435537287.32 输出:3435537287.320000
一旦我将小数点前的数字增加到 10,使用 %Lf 打印的值就会添加垃圾值。例如,使用 %Lf 打印的小数点前 10 位的值 输入:34355372871.3487 输出:34355372871.348701 从上面的输出可以看出,输入值已更改。
是否有任何用于 g++/xlc++ 的编译时选项可用于使值不会改变?
::代码片段::
double d2 = 34355372871.3487;
double d4 = 3435537287.3487;
printf("d2 = %lf\n", d2);
printf("d4 = %lf\n", d4);
谢谢,哈德森