prüfen ob eine zahl ein komma enthält
-
hallo
ich möchte eine zahl in ein textfeld durch eine andere zahl teilen.danach soll
geprüft werden ob die summe ein komma enthält oder nicht.leider schaffe ich es nicht die summe zu prüfen.weiss jemand rat?
danke
-
Eine Lösung wäre, Ergebnis in einen String umwandeln und dann darin nach einem Komma suchen ...
-
ich bin noch etwas schwach in cpp. wie mache ich das denn??
-
Einen neuen ansistring machen und ergebnis reinladen. Dann durchsuchen. Schua dich mal in der Hilfe nach. Außerdem such einmal im Forum irgendwo gibt es ein ähnliches Bsp.
-
danke
-
suchen kannst du mit : strtok , AnsiPos und LastDelimeter
umwandeln mitm standard Ctor von AnsiString ... oder nem static_cast
-
hm... wenn das ein string ist, wirst du den sicher umwandeln.
das ergebnis der berechnung weisst du ja auch wieder einer variablen zu, überlichweise sicher einem float oder double. das heisst du hast in jedem fall ein komma!
es sei denn du dividierst die zahlen und castest sie auf eine integer variable, dann hast du kein komma, aber ein fehlerhaftes ergebnis (durch rundung).
oder steh ich jetzt aufm schlauch?
[ Dieser Beitrag wurde am 03.07.2003 um 12:31 Uhr von Sunday editiert. ]
-
argh.. falsches icon gedrückt..
[ Dieser Beitrag wurde am 03.07.2003 um 12:32 Uhr von Sunday editiert. ]
-
Eine Alternative ist, dass du den Absolutwert mit dem Wert vergleichst bei gleichheit hast du kein Komma, ansonsten hast du eins....
Hat den Vorteil, dass du keine Stringumwandlung brauchst --> Prozessorzeit. Ob dass allerdings schneller od. besser ist weiß ich auch nicht.
gruß
dose
-
Ich finde Prozessorzeit ist ein Parameter den man bei einer so simplen umwandlung (überhaupt ein einfaches programm), nicht wirklich beachten muss. Außerdem finde ich das die Methode mit ansistring, for-schleife und vergleichen vorallem für einen anfänger einfacher ist.
-
bool komma = false;
AnsiString z = txtIn->Text;
if ( z.Pos(",") != 0 )
komma = true;
-
Header-Datei math.h Kategorie Mathematische Routinen Prototyp double fmod(double x, double y); long double fmodl(long double x, long double y); Beschreibung Berechnet x modulo y, den Rest der Division x/y. fmod berechnet x modulo y (den Rest f, wobei x = ay + f für einen Integer a und 0 < f < y gilt). fmodl ist die long double Version. Sie erwartet ein Argument vom Typ long double und liefert ein Ergebnis vom Typ long double zurück. Rückgabewert fmod und fmodl liefern den Rest f, wobei x = ay + f gilt (wie beschrieben). Wenn y = 0 gilt, liefern fmod und fmodl den Wert 0 zurück.
wenn fmod(double wert,1) != 0 ist es ne kommazahl
so long ...