Befehl für Maximum Reduzierung ?
-
Hi,
gibt es einen universellen Befehl (also für MFC, STL, native C++), der einen Wert ungefähr so reduziert:
Eingabe: int 2 Milliarden, mit Maximum unsigned Integer mit 4 Milliarden Zahlen
Ausgabe: int 127 , mit Maximum byte 255also eine Funktion in etwa: int GetReduced(int input, int inputmax, int outputmax)
Grüße
thenoname
-
? Den Max. Wert für einen Datentyp erhälst du per std::numeric_limits-Template, falls du das brauchst ...
std::numeric_limits<unsigned int>::max().
-
Jo, ich kenn da noch INT_MAX, UINT_MAX etc.
Es soll aber unabhängig vom Beispiel hier auch mit z.B. 123456 als Maximum arbeiten können.dann müsste ich aber immer noch eine eigene Routine zum prozentualen Abgleich
schreiben. Diese "könnte" jedoch nicht so perfekt sein, wie bereits bestehende Routinen.
Ich denke da an Berrechnung mit Kommazahlen.
Aus anderen Sprachen kenne ich jedoch solche Makrofunktionen wie oben beschrieben,
also müsst es das auch in c++ geben
-
Hallo
Nein einen solchen "Befehl" (Es gibt keine Befehle in C++! Nur Makros und Funktionen) gibt es in C++ nicht. Ist auch kein Verlust denn so eine Funktion kannst du wie du schon selber geschrieben hast schnell selber schreiben. Über die Genauigkeit im Nachkommabereich brauchst du dir auch keine Sorgen machen da du zum Schluß eh einen Ganzzahlwert raushaben willst.
bis bald
akari
-
Hi,
das mit der Genauigkeit klingt gut.
Wie ist das mit einem +0.5 für eine korrekte Rundung ?
Muss ich z.B. bei einem unsigned int mit vollen 4 Byte mit einem
double Wert rechnen ? Ich denke ein Double hat mehr Stellen als ein uint
und verkraftet auch noch ein paar Nachkommastellen bei 4294967296 ?Gruß
thenoname