Значительное двойное значение изменяется при печати с помощью% Lf Значения до следующей комбинации дают правильные результаты 9 цифр до десятичной/6 цифр после десятичного числа , например. из значения с 9 цифр перед десятичным отпечатанными% Lf входа: 3435537287.32 Выхода: 3435537287,320000Прецизионная ошибка в двойном
После того, как я увеличить цифры до того десятичного до 10, значение, отпечатанное% Lf добавляет стоимостью мусора. , например. значения с 10 цифрами до десятичной печати с% Lf Вход: 34355372871.3487 Выход: 34355372871.348701 Как видно из вышесказанного, значение входа изменяется.
Есть ли какая-либо опция времени компиляции для g ++/xlC++, которая может использоваться, чтобы значение не было изменено?
:: Код сниппета ::
double d2 = 34355372871.3487;
double d4 = 3435537287.3487;
printf("d2 = %lf\n", d2);
printf("d4 = %lf\n", d4);
Спасибо, Хадсон
Вы можете найти http://floating-point-gui.de/ help – Hulk