我試圖得到一些計算結果,但是當x等於零時,它會輸出一些奇怪的數字。問題可能是什麼?x在輸出中的奇怪值
#include <iostream>
#include <math.h>
using namespace std;
void main()
{
const int N = 100;
int i;
double x, h, a = -1.0, b = 1.0, y[N+1];
h = (b - a)/N; //h=0.02
for (i = 0, x = a; i <= N; i++, x += h)
{
if (x == 0) // When x is 0
{
cout << x << '\t' << "0.00" << endl;
continue;
}
y[i] = exp(-x*x);
cout << x << '\t' << y[i] << endl;
}
}
不要使用==比較浮點數 – JGroven
6.17562e-016不是「奇怪的數字」。這是非常小的價值。另一種表示此值的方法是0.000000000000000617562。但它並不那麼方便。 – Ilya