Сравнивая некоторый C-код и F #, я пытаюсь его заменить, я заметил, что в конечном результате были некоторые отличия.
Работая с резервным копированием кода, я обнаружил, что даже при наличии различий - хотя и крошечных.
Код начинается с чтения данных из файла. и самый первый номер выходит по-другому. Например, в F # (проще script):
let a = 71.9497985840
printfn "%.20f" a
Я получаю ожидаемый (для меня) вывод 71.94979858400000000000
.
Но в C:
a = 71.9497985840;
fprintf (stderr, "%.20f\n", a);
выводит 71.94979858400000700000
.
Откуда это 7?
Разница лишь крошечная, но меня это беспокоит, потому что я не знаю почему. (Это также беспокоит меня, потому что это затрудняет отслеживание, когда мои две версии кода расходятся)