Mathematische Formeln einbinden

Alles rund um die Programmierung mit Qt
Antworten
qtprogram
Beiträge: 12
Registriert: 3. Oktober 2007 13:27

Mathematische Formeln einbinden

Beitrag von qtprogram »

Hallo,

ich möchte in meinem QT Programm eine mathematische Formel einbinden.
Ich dachte, dass ich da "math.h" als header einbinde und dann meine Formel, bestehend aus n-te Wurzel, Exponent und Abrunden, einfach mit zB sqrt schreiben kann.

Muss ich da eine bestimmte QT Klasse einbinden? (ich habe auf anhieb keine gefunden.)

Wie kann ich Zahlen abrunden ?? (round off)

Vielen Danke für Eure hilfe schon im Vorraus :-)
QNoob
Beiträge: 10
Registriert: 13. September 2007 00:35

Beitrag von QNoob »

Moin,

weiß zwar nicht genau, was du mit "Formeln einbinden" meinst, aber wenn du mathematische Berechnungen durchführen willst, kann ich dir folgendes empfehlen

GNU Scientific Library:
http://www.gnu.org/software/gsl/

BLAS-Atlas oder auch nur BLAS:
http://math-atlas.sourceforge.net/
http://www.netlib.org/blas/

Wenn du Linux benutzt, kannst du die Bibliotheken einfach über den Paketmanager installieren. Die Pakete sind in fast jeder Distribution enthalten. Für einfachere Berechnungen reichen die Funktionen aus "math.h" natürlich aus.
Muss ich da eine bestimmte QT Klasse einbinden? (ich habe auf anhieb keine gefunden.)
Kannst du auch nicht, weil das mit Qt nichts zu tun hat ;-)

Wie kann ich Zahlen abrunden ?? (round off)
Das geht mit den Funktionen aus "math.h". Guck dir dazu mal "floor" und "ceil" an.

Ich hoffe, dass ich dir damit weiterhelfen konnte :-)
mollitz
Beiträge: 81
Registriert: 5. April 2007 10:55

Beitrag von mollitz »

Code: Alles auswählen

int qRound ( qreal value ) 
Rounds value to the nearest integer. For example: 
 qreal valueA = 2.3;
 qreal valueB = 2.7;

 int roundedValueA = qRound(valueA);
 \\ roundedValueA = 2
 int roundedValueB = qRound(valueB);
 \\ roundedValueB = 3 

musste halt wenn de auf 2 kommastellen runden willst erst die zahl mal 100 dann runden und wieder durch 100 teilen oder so.
iaby
Beiträge: 53
Registriert: 10. Februar 2007 13:12

Beitrag von iaby »

Code: Alles auswählen

int Runde(float value) {
return (int)(value + 0.5);
}

int RundeAb(float value) {
return (int)value;
}
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

iaby hat geschrieben:

Code: Alles auswählen

int Runde(float value) {
return (int)(value + 0.5);
}
[/quote]

Na dann hoffen wir mal das value nie negativ wird...  :roll: 

QNoob hat recht - floor() ist die richtige Wahl.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
qtprogram
Beiträge: 12
Registriert: 3. Oktober 2007 13:27

Beitrag von qtprogram »

also ich hab das ganze jetzt mit floor versucht... das geht schon... Danke..

Das andere wirft bei mir im Moment leider nur Fragezeichen auf... Sorry..

Aber vielen Dank

LG
Antworten