PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : float statt int



undefined
24-05-2004, 17:40
was muss ich den hier ändern damit ich den richtigen Wert erhalte?
gesucht wird der wert 67,5 im Moment gibt er mir aber 66 type int zurück.

#include <iostream>
int main()
{
float ergebnis;
float richtig;
richtig = 67.5f;
int kreuzung = 3;
int lochkreis = 32;
// ergibt int soll aber float Rauskommen siehe (richtig)
ergebnis = ( ( 360 / ( lochkreis / 2 ) ) * kreuzung );
// Ausgabe
std::cout << ergebnis << " " << richtig << std::endl;
return 0;
}

axeljaeger
24-05-2004, 17:52
anstatt 2 und 360 2.0 und 360.0 nehmen.

undefined
24-05-2004, 17:57
Alles klar Danke für die schnelle Antwort ;)

undefined
24-05-2004, 19:05
Mein nächstes Problem :rolleyes:
Der Wert müste Eigentlich 0,5 ergeben. Es kommt aber -0.952413 dabei heraus.

#include <iostream>
#include <math.h>
int main()
{
float gr, out;
gr = 60.0f;
out = cos(gr);
std::cout << out << std::endl;
return 0;
}
laut dieser referenz müste aber float bei cos Funktionieren ?
http://www.dinkumware.com/manuals/reader.aspx?b=p/&h=math.html#cos

merci

PS: Compiler aufruf
g++ -Wall *.cpp -o test

peschmae
24-05-2004, 19:22
das ist durchaus richtig das Resultat

Da wird im Rad-Modus gerechnet (sollte dein Taschenrechner eigentlich auch können). Dort ist
360° = 2 PI
d.h. 60° = PI/3

Das ist eigentlich die "normale Argumentart" für sin/cos/tan-Funktionen.

MfG Peschmä

undefined
24-05-2004, 19:40
Und wie bekomme ich es dann nach grad gibt es hierfür einen Befehl oder Klasse?

bmann
24-05-2004, 23:41
Ich definier mir dafür gerne eine DEG2RAD Konstante, die ich für das umrechnen von degree (Grad) nach radians verwende:


#include<math.h>
#define DEG2RAD (M_PI/180.0)


Damit sähe dein Code dann so aus:


float gr, out;
gr = 60.0f;
out = cos(gr * DEG2RAD);
std::cout << out << std::endl;


Eine ganz normale Multiplikation mit M_PI/180.0 reicht natürlich völlig aus, die Konstante (jaja ist eigentlich keine aber who cares) ist aber recht praktisch wenn man das oft schreiben muss, vor allem da es imho den Code lesbarer macht.

CU
Andi

undefined
25-05-2004, 08:50
Besten Dank da währe ich nicht drauf gekommen. Bin halt php verseucht hier gibt es für all diese Dinge eine Funktion :D
mfg undefined