R.....y konto usunięte 31.03.2022, 19:09:58 0 + #naukaprogramowania #cppzrobiłem głupi kod dla beki, i odkryłem że wywala się w momencie którego sie kompletnie nie spodziewałem.double aproximate_cosine(double x){ // taylor series double result=1-(power(x,2)/2.0)+(power(x,4)/24.0); return result;}dla 3 zwraca prawidłowo -0.125, ale dla -3 zwraca z jakiegoś powodu 1Wydaje mi sie że coś z zapisem binarnym liczby, ale nie jestem w stanie wskazać co jest nie tak.Cały kod: https://hastebin.com/xipexedudo
M.....f konto usunięte 31.03.2022, 19:16:16 0 + @RedveKoronny: A co ma zwracać innego jak power zwraca 0?
R.....y konto usunięte 31.03.2022, 19:17:17 0 + @RedveKoronny: dobra, w funkcji power dodałema=std::abs(a) i działa
R.....y konto usunięte 31.03.2022, 19:18:09 0 + @Malkof: dodałem do power a=abs(a) i jest git, dziena
kate_kate kate_kate 31.03.2022, 19:20:28 0 + @RedveKoronny: doubli nie porownuje sie operatorem ==, to podpowiedz niezwiazana z pytaniem.
kate_kate kate_kate 31.03.2022, 19:23:24 2 + @RedveKoronny: funkcja z epsilonem / marginesem ponizej ktorego dwa double postrzegasz jako rowne. Tu przyklad takiej funkcji: https://www.tutorialspoint.com/what-is-the-most-effective-way-for-float-and-double-comparison-in-c-cplusplus
zrobiłem głupi kod dla beki, i odkryłem że wywala się w momencie którego sie kompletnie nie spodziewałem.
double aproximate_cosine(double x){
// taylor series
double result=1-(power(x,2)/2.0)+(power(x,4)/24.0);
return result;
}
dla 3 zwraca prawidłowo -0.125, ale dla -3 zwraca z jakiegoś powodu 1
Wydaje mi sie że coś z zapisem binarnym liczby, ale nie jestem w stanie wskazać co jest nie tak.
Cały kod: https://hastebin.com/xipexedudo
a=std::abs(a) i działa