-1
這裏是我的代碼的一部分(I縮影它):2計算機得到不同的輸出
#include <iostream>
#include <cmath>
#include <iomanip>
int main()
{
double pi = M_PI;
long long x = 12026548095792;
std::cout << std::fixed << std::setprecision(8) << pi * x;
}
我的計算機的輸出是:
37782515145784.46100000
(視窗7 64,處理器:英特爾(R )Core(TM)i3-2328M CPU @ 2.20ghz)。
但是,當我跑我的SPOJ代碼,輸出是
37782515145784.46093750
(集羣:多維數據集(英特爾G860))。
請幫我解釋一下這個問題。
更新:我用codeblocks 16.01,gcc版本5.3.0。
也發佈編譯標誌 – Mikhail
也許像http://christian-seiler.de/projekte/fpmath/或https://gcc.gnu.org/wiki/FloatingPointMath可能會解釋發生了什麼。如何解決這個問題取決於你使用的特定編譯器和一組目標平臺。 – SergGr
謝謝你的幫助。 –