Nie wiem, jak sobie z tym poradzić:
vector<double> wartosciX;
double wartosc;
double _wPiksela = 0.02;
wartosciX.clear();
for(int i=1; i<479; ++i)
{
wartosc = -4.8 + i * _wPiksela;
wartosciX.push_back(wartosc);
}
Problem w tym, że gdy wartość dotrze w "okolice" 0 to pojawiają się różnice rzędu 0.0000000000003
Fragment zawartości wektora po wykonaniu:
-4.78
-4.76
-4.74
...
-0.16
-0.14
-0.12
-0.0999999999999997
-0.0799999999999997
-0.0599999999999997
-0.0399999999999997
-0.0199999999999997
2.77555756156289E-16
0.0200000000000003
0.0400000000000003
0.0600000000000003
0.0800000000000003
0.1
0.12
0.14
...
4.72
4.74
4.76
Wcześniej spróbowałem napisać to tak:
double wartosc = -4.8;
double _wPiksela = 0.02;
wartosciX.clear();
for(int i=1; i<479; ++i)
{
wartosc += _wPiksela;
wartosciX.push_back(wartosc);
}
ale błąd pojawiał się już na jednym z pierwszych elementów! Czym to jest spowodowane i jak można to rozwiązać?</cpp>