Kommazahlen im StringGrid? (war: StringGrid)
-
wie bekomme ich aus der Kommazahl, eine Zahl die nach dem Komma nur 2 Stellen hat?
-
neu = ((int) (alt * 100)) / 100;
oder
VCL-Referenz zu RoundTo
-
funktioniert irgendwie nicht wirklich!
-
Sehr präzise Beschreibung.
Was funktioniert nicht?
-
Dasd schrieb:
neu = ((int) (alt * 100)) / 100;
oder
VCL-Referenz zu RoundToDamit bekommt man die Vorkommazahl: 13,12345 -> 13
Und RoundTo ist in meiner BCB-Hilfe nicht zu finden (?)Sonnenschein84 schrieb:
wie bekomme ich aus der Kommazahl, eine Zahl die nach dem Komma nur 2 Stellen hat?
Die hier gefundene Funktion tut es für Dich:
double Round(double Zahl, int Stellen) { return floor(Zahl * pow( 10, Stellen) + 0.5) * pow(10, -Stellen); }
Und
#include <math.h>
nicht vergessen.
xy
-
@xy danke dir, aber ich hatte es bereits so gelöst:
AnsiString neu= FormatFloat("0.0",verteilung[tag++]); StringGrid1->Cells[i+1][2] = neu;
das ging auch!
-
xy schrieb:
Damit bekommt man die Vorkommazahl: 13,12345 -> 13
Und RoundTo ist in meiner BCB-Hilfe nicht zu finden (?)Falsch:
13,12345 * 100 = 1312,345 -> int -> 1312 / 100 = 13,12.
Hat schon im klassischen C funktioniert.Und RoundTo gibt's in der VCL-Referenz.
-
Ist ja nun gelöst das Problem! Ich hab das mit dem RoundTo bei mir auch nicht gefunden!
-
Dasd schrieb:
float alt=13.123456; float neu = ((int) (alt * 100)) / 100; ShowMessage(neu);
Hast Du es denn in BCB ausprobiert?
-
Ok, hast Recht:
float neu = (float) ((int) (alt * 100)) / 100;
Hatte nicht bedacht, dass in C++ der /-Operator automatisch castet wenn's sein muss.