Problem mit atan in c

Seite 1 von 4 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/problem_mit_atan_in_c_38550/page_1 - zur Vollversion wechseln!


Elektrosmog schrieb am 20.06.2002 um 09:01

Möchte den 24*atan(1/8) ausrechnen und weitere solche Formen. Geht das? Bei mir kommt immer 0 heraus, obwohl dieses Ergebniss eigentlich nicht möglich ist. Bitte um Hilfe


Vir@s schrieb am 20.06.2002 um 09:06

post mal den ganzen source - sicher geht des nur wahrscheinlich hast an Fehler im Source ;) ;) ;)


Elektrosmog schrieb am 20.06.2002 um 09:14

#include <stdio.h>
#include <math.h>

void main()

{
float pi;
pi=24*atan(1/8)+8*atan(1/57)+4*atan(1/239);
printf("\n\nDie Zahl Pi nach Stormer ist %f \n", pi);
return 0;
}


schrieb am 20.06.2002 um 09:14

24*atan(1/8.0)


Elektrosmog schrieb am 20.06.2002 um 09:16

wieso 24*atan(1/8.0) ???


Bimminger schrieb am 20.06.2002 um 09:18

warum eigentlich net
24*atan(0.125)
is aus performance-gründen sicher besser.....


btw, wieso nicht mitn calc ausrechnen und händisch hinschreiben????
so in etwa pi=3.14 //gerundet ;) *lol*


Elektrosmog schrieb am 20.06.2002 um 09:21

es geht mir nicht darum Pi mit meinem taschenrechner auszurechnen. Ich möchte wissen wie genau Stormer Pi ausgerechnet hat und das an einem von mir geschriebenen Programm. DAs mit den Kommazahlen könnte wirklich besser sein


Vir@s schrieb am 20.06.2002 um 09:23

Zitat von .deRElict.
24*atan(1/8.0)

Weil ohne .0 wird alles in int form berechnet, bei 8.0 wird eine float Rechnung gmacht!

Immer Kommazahlen verwenden wenn man float hat - auch ohne Nachkommastellen!

Mfg, Vir@s


Elektrosmog schrieb am 20.06.2002 um 09:29

Ah jetzt wird mir einiges Klar. Müsste ich dann nicht 24.0*atan(1.0/8.0) rechnen?


Vir@s schrieb am 20.06.2002 um 09:45

es reicht wenns 1 Faktor 8.0 ist, zumindest soweit ich mich erinnern kann :)

Aber wenn du alle .0 machst kanns auf keinen Fall schaden!

Mfg, Vir@s


Ringding schrieb am 20.06.2002 um 11:34

Zitat von Bimminger
is aus performance-gründen sicher besser.....

Kommt genau auf's gleiche raus, weil der Compiler es soundso ausrechnet, egal wie man's hinschreibt.

Und Vir@s hat recht, die Berechnung wird mit Gleitpunktzahlen ausgeführt, sobald einer der Operanden eine solche ist.


Oculus schrieb am 20.06.2002 um 15:19

Zitat von Ringding
Kommt genau auf's gleiche raus, weil der Compiler es soundso ausrechnet, egal wie man's hinschreibt.

genau
optimierungsfunktion vom compiler
des is aber nur a kleinstes ding von den ganzen optimierungsverfahren

pfu, des muss so krass zum entwickeln sein, so a optimierer :eek:


Vir@s schrieb am 20.06.2002 um 16:24

Vorallem was für nen Rechner hast du damit man eine Division aus Performance-Gründen abkürzt? :)


FMFlash schrieb am 20.06.2002 um 18:00

fehler: deine void-funktion gibt einen wert zurück

edit:

#include <iostream.h>
#include <math.h>

void main()
{
double pi;
pi=24*atan(1/8.0)+8*atan(1/57.0)+4*atan(1/239.0);
cout << "Die Zahl Pi nach Stormer ist " << pi << endl;
}

hat pi nicht sonderlich genau ausgerechnet der kerl


Vir@s schrieb am 20.06.2002 um 18:26

Eigentlich is ned der Rückgabewert ein Fehler sondern eher des void :)

Wenn mans ganz sauber machen will nimmt man int main(int argc, char *argv[]);

damit hat man wirklich alles im Programm drinnen :)

Mfg, Vir@s




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025