wprintf
функция реализована в стандартной библиотеке C, а не в gcc.
Число 1717.1800000000001
имеет 13 цифр после плавающей запятой. Однако он не имеет точного представления в 64-разрядном двоичном формате с плавающей запятой.
Формат "%.20G"
требует вывода 20 значащих цифр, что является количеством цифр в 1717.1800000000000637
. Следовательно, этот результат - то, что ожидалось. Либо стандартная библиотека C для Windows обрабатывает формат по-разному, либо выполняет неправильное округление.
С другой стороны, вам может потребоваться определенное количество цифр после числа с плавающей запятой, используя формат "%f"
, например, "%.13f"
округляет вывод до 13 цифр после числа с плавающей запятой и печатает 1717.1800000000001
, как и ожидалось.