Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge

Runden in C++, nur wie???

(Anonym) / 5 Antworten / Baumansicht Nickles

Ich habe versucht in C++ 6.0 eine Zahl (float) zu runden.
Leider weiß ich ich den konkreten Befehl dafür nicht,
mußte also im Handbuch nachschlagen. Da stand als Bsp.:

SELECT RUNDEN(mng * (Preis * Rabatt), 2)
FROM Verkauf

und diese Funktionen verlangen auch noch ODBC, von dem ich
noch weniger als von C++ verstehe :-(
Kann mir irgendjemand sagen,
wie die einfache Runden-Funktion (am Besten ohne ODBC) aussieht?
Danke!
bei Antwort benachrichtigen
(Anonym) Nachtrag zu: „Runden in C++, nur wie???“
Optionen

Es gibt meines Wissens keinen direkten Befehl!
Du mußt den Float auftrennen in Vor- und Nachkommawerte (dafür gibt es was...) und dann selber in einer Methode berechnen!

bei Antwort benachrichtigen
(Anonym) Nachtrag zu: „Es gibt meines Wissens keinen direkten Befehl! Du mußt den Float auftrennen in...“
Optionen

Und wie trenne ich die Variable in Vor- und Nachkommawerte?

bei Antwort benachrichtigen
Andreas42 (Anonym) „Runden in C++, nur wie???“
Optionen

Hi!

In was für einem Handbuch hast du denn Nachgeschlagen? 8-)

Die Anweisung ist SQL und bedeutet, das aus der Tabelle Verkauf (die in einer Datenbank verwaltet wird) die Spalten (Felder Menge, Preis * Rabett) gelesen multipliziert, auf zwei Nachkommastellen gerundet und dann untereinander ausgegeben werdenen.

Das ist zwar schön, wird auch funktionieren - ist aber eigentlich kein C++, sondern eben eine SQL-Anweisung (die Warscheinlich von einem SCSQ-Preprozesser in C/C++-Anweisungen umgesetzt wird). ;-)

ODBC ist übrigends ein Schnittstellen-Standard auf Treiberebene zum Ansprechen von Datenbanken. Um per SQL auf den Inhalt (= die Tabellen) einer Datenbank zugreifen zu können, muss vorher eine ODBC-Verbindung (durch einen ODBC-Treiber) zur Datenbank hergestellt werden.

Ich bin leider kein echter C/C++ Kenner, sondern nur ein Einfacher Turbo C++ Anwender. Dort gibt es aber natürlich eine Funktione zum Runden von Floatwerten: dort gibt's den BCD-Typ, eine Float-Variante, die gezielt Nachkommastennen zugewiesen bekommt (die Wandlung Float nach BCD erfolgt mit der Funktion bcd( floatvar, nachkommastellen ).
Die Bibliozhek math.h kennt aber auch Funktionen zum Auf- und Abrunden von float-Werten: ceil(float) und floor(float). Beide Funktionen runden auf die letzte Vorkommastelle. (Also Notfalls den Wert mal 100, runden und wieder durch 100 teilen, falls es zwei nachkommastellen sein sollen...)

Ich hoffe, das hilft dir weiter.

Bis denn
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen
(Anonym) Andreas42 „Hi! In was für einem Handbuch hast du denn Nachgeschlagen? 8- Die Anweisung ist...“
Optionen

Danke!

bei Antwort benachrichtigen
(Anonym) Nachtrag zu: „Runden in C++, nur wie???“
Optionen

float g;
int f = (g - (float)((int)g))

bei Antwort benachrichtigen