Я в процессе преобразования программы из кода Scilab в C++, и для меня важно поддерживать результаты, созданные Scilab.Если я пытаюсь воспроизвести программу на другом языке. Нецелесообразно использовать больше точности?
Я знаю, что Scilab использует двойную точность IEEE 754 и что C++ удваивает (хотя это и не требуется) реализованы аналогичным образом.
ли тогда плохая идея использовать более высокую точность (напримерlong double
) в C++, если я пытаюсь точно соответствовать результатам Scilab?
Например: Можно ли для Scilab, чтобы вычислить число быть 0.1234, тогда как в C++ с использованием долго удваивает число будет 0.12345. Таким образом, потенциально создавая дисперсию, которая привела бы к двум программам, производящим разные результаты (хотя и более точные на C++).
Я готов поспорить, что вы никогда не получите точно таких же результатов. Но вам действительно нужно? –
@ JesperJuhl Технически говоря, мне не нужны точные результаты. Проблема в том, что в моей программе много циклов, и если начальный цикл отключен даже малой фракцией (какой она есть), конечная разница становится значительной. –
Если разница в конце значительна, это не означает, что ваша программа требует большей точности, чем позволяет встроенная с плавающей запятой? – Galik