Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Kommazahlen (https://www.delphipraxis.net/182844-kommazahlen.html)

LokutusvB 21. Nov 2014 11:54

Delphi-Version: 5

Kommazahlen
 
Hallo,

ich habe mir mal vor ein paar Jahren eine Funktion gebastelt, die mir von einer Kommazahl den Ganzzahlenwert und den Nachkommawert ausgibt (für weitere Berechnungen). Ich weiß, das ist mit Pos und Copy schnell gelöst. Gibt es aber vielleicht inzwischen in Delphi XE 2 bis 7 eine Funktion, die das automatisch ausgibt, wie z.B. bei einem Dateinahmen den Namen und die Endung?

Oder aber gibt es eine Funktion, die mir z.B. von einer Uhrzeit den Stunden- und Minutenwert zurückgeben kann, als Basis z.B. "03:30" oder "3,3"?

Jasocul 21. Nov 2014 12:02

AW: Kommazahlen
 
Zitat:

Zitat von LokutusvB (Beitrag 1280614)
Gibt es aber vielleicht inzwischen in Delphi XE 2 bis 7 eine Funktion, die das automatisch ausgibt

Schau mal nach
Delphi-Quellcode:
Trunc
und
Delphi-Quellcode:
Frac
. Geht aber nur, wenn es schon als Zahl vorliegt. Bei einem String funktioniert das nicht.

Zitat:

Zitat von LokutusvB (Beitrag 1280614)
Oder aber gibt es eine Funktion, die mir z.B. von einer Uhrzeit den Stunden- und Minutenwert zurückgeben kann, als Basis z.B. "03:30" oder "3,3"?

Schau dir mal die Unit DateUtils an. Dort sollten passende Funktionen vorhanden sein.

baumina 24. Nov 2014 07:05

AW: Kommazahlen
 
Zitat:

Zitat von LokutusvB (Beitrag 1280614)
Gibt es aber vielleicht inzwischen in Delphi XE 2 bis 7 eine Funktion, die das automatisch ausgibt, wie z.B. bei einem Dateinahmen den Namen und die Endung?

ExtractFileName
ExtractFileExt

Dejan Vu 24. Nov 2014 07:12

AW: Kommazahlen
 
Zitat:

Zitat von LokutusvB (Beitrag 1280614)
ich habe mir mal vor ein paar Jahren eine Funktion gebastelt, die mir von einer Kommazahl den Ganzzahlenwert und den Nachkommawert ausgibt (für weitere Berechnungen). Ich weiß, das ist mit Pos und Copy schnell gelöst.

Da passt doch etwas nicht, merkst Du das? Pos und Copy sind Funktionen auf Strings, d.h. Zeichenketten. Aber eine 'Kommazahl' ist eine Zahl, die als Double, Extended, Real o.ä. abgelegt wird bzw. werden sollte.

Wenn Du also bisher nur mit Strings gearbeitet hast, wird es Zeit, dich mit den numerischen Datentypen und den damit verbundenen Funktionen auseinanderzusetzen.
Wenn Du dich aber mit numerischen Datentypen auskennst, dann verwende Sie.

himitsu 24. Nov 2014 09:20

AW: Kommazahlen
 
Zitat:

Zitat von baumina (Beitrag 1280866)
Zitat:

Zitat von LokutusvB (Beitrag 1280614)
Gibt es aber vielleicht inzwischen in Delphi XE 2 bis 7 eine Funktion, die das automatisch ausgibt, wie z.B. bei einem Dateinahmen den Namen und die Endung?

ExtractFileName
ExtractFileExt

Ich glaub die Funktionen kennt der TE schon, es fehlten ihm nur die Funktionen, welche sowas für "Floats" machen.

Float als String ist natürlich blöde und da finge man dann mit Copy, Pos, Split oder sowas an.
Als Flieskommazahl, wären die äquivalenten Funktionen die bereits genannten Trunc und Frac, welche es schon vor Delphi gab (in Turbo Pascal).

Und nein, das Dezimaltrennzeichen ist nicht immer ein
Delphi-Quellcode:
,
, denn die Amis haben z.B. den Dezimalpunkt und kein Dezimalkomma, womit dein Programm in einem englischen Windows nicht funktionieren würde. :stupid:

LokutusvB 24. Nov 2014 10:24

AW: Kommazahlen
 
Zitat:

Zitat von Dejan Vu (Beitrag 1280867)
Da passt doch etwas nicht, merkst Du das?

Ja, ich habe nur schon einen Schritt weiter gedacht und diesen nicht mit aufgeschrieben. Das genannte Funktionen nur mit Strings funktionieren, ist mir klar und hatte ich als Voraussetzung nicht mit geschrieben.

An himitsu:
Genau. :-D Diese sind mir sehr gut bekannt, nützen mir aber im Float-Bereich nicht die Bohne. Mit Copy und Pos habe ich bisher gearbeitet, ich hatte Hoffnung mittlerweile gibt es vielleicht eine Routine dafür.

An Jasocul:
Danke für die Tip, DateUtils schaue ich mir näher an.

DeddyH 24. Nov 2014 10:30

AW: Kommazahlen
 
Die Hinweise auf Trunc und Frac scheinst Du übersehen zu haben, die machen genau das, was Du willst: Vor- und Nachkommaanteil liefern.

LokutusvB 24. Nov 2014 10:45

[Gelöst]AW: Kommazahlen
 
Habe ich nicht. Frac liefert mir wieder eine Kommazahl, 0,XYZ. Da habe ich sie wieder, meine Kommazahl.

Der Hinweis auf DateUtils war die rettende Idee. MinuteOf und HourOf liefern mir genau das, was ich benötige, vielen Dank! So wandle ich meine Kommazahl in ein DateTime-bzw. Time-Format und lasse mir Stunde und Minute ausgeben.

mkinzler 24. Nov 2014 10:47

AW: Kommazahlen
 
Warum speicherst Du Daten/Uhrzeiten in Strings?
Frac liefert den Zeitwert (TTIme = Double Nachkommawert)

Der schöne Günther 24. Nov 2014 10:49

AW: Kommazahlen
 
Ich glaube das fummeln mit der Nachkommastelle eines TDateTime war nur ein Umweg den er jetzt (zum Glück) nicht mehr gehen braucht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:59 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz