funkcja sin()

M6
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 10 lat
  • Postów:9
0

Witam. Mam drobne pytania odnośnie funkcji sinus. Dlaczego przy takim kodzie, dla y = 180, funkcja zwraca x = 1.22461e-016? Wg mnie powinna chyba zwrócić zero. Z góry dziękuję za odpowiedź.

Kopiuj
#include <iostream>
#include <math.h>
using namespace std;

int main(int argc, char** argv) {
	
	
	double x, y, z; 
	cin >> y;
	z =y*M_PI/180;
	
	x = sin(z);
	cout << "x = " << x << endl;
	return 0;
}

 
twonek
  • Rejestracja:prawie 11 lat
  • Ostatnio:prawie 2 lata
  • Postów:2500
3

1.22461e-016 to jest wartość bardzo bliska 0. Takie są uroki obliczeń na liczbach zmiennoprzecinkowych.

M6
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 10 lat
  • Postów:9
0

OK. Dzięki, myślałem, że gdzieś jest jakiś myk.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.