У меня есть код C ++ в Visual Studio 2015 C ++ 11. Код делает EXP
val = 7.3526137268510955991
double myCalulatedEXP= EXP(val);
//Lets print
std::cout.precision(20);
std::cout<<myCalulatedEXP;
На одной машине я получаю 1560.269320753015 3359, а на другой я получаю 1560.269320753015 1085
Смотри, что последние 4 цифры не совпадают, что доставляет мне неприятности.
Хотя разница невелика, она умножается и в дальнейшем увеличивается.
Обе машины имеют одинаковый идентификатор процессора.
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 63 Stepping 2, GenuineIntel
Обе машины имеют одинаковую ОС через
`systeminfo | findstr /B /C:"OS Name" /C:"OS Version"`
OS Name: Microsoft Windows Server 2012 R2 Standard
OS Version: 6.3.9600 N/A Build 9600
Обе машины Windows Server 2012. Я запустил средство проверки зависимостей, чтобы проверить, связаны ли у них разные версии dll. Оба абсолютно одинаковы.
Пожалуйста, предложите
1) Чем могут быть вызваны такие различия?
2) Как я могу избежать таких различий?
3) Если процессор, ОС, библиотеки DLL одинаковы, можно ли ожидать других результатов?