AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dreier Dezimalpunkt

Ein Thema von mannewolff · begonnen am 23. Jul 2009 · letzter Beitrag vom 23. Jul 2009
Antwort Antwort
mannewolff

Registriert seit: 21. Okt 2008
48 Beiträge
 
RAD-Studio 2009 Arc
 
#1

Dreier Dezimalpunkt

  Alt 23. Jul 2009, 12:25
Hat jemand eine Routine zur Hand, wo man Dreier-Dezimalpunte ein- ausfügen kann.

1000,00 -> 1.000,00
1000000,00 -> 1.000.000,00

und umgekehrt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Dreier Dezimalpunkt

  Alt 23. Jul 2009, 12:31
Versuch es mal mit Format().

[edit] %f = ohne Tausendertrenner, %n = mit Tausendertrenner [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von holliesoft
holliesoft

Registriert seit: 4. Apr 2005
Ort: Gau-Algesheim
250 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Dreier Dezimalpunkt

  Alt 23. Jul 2009, 12:37
Zitat von DeddyH:
Versuch es mal mit Format().
Naja, ich bin mal nicht so und gebe noch einen genaueren Hinweis (habe heute meinen sozialen Tag )

Delphi-Quellcode:

// Aus der Delphi 7 Hilfe...
// Das Argument muss ein Gleitkommawert sein. Der Wert wird in einen String der folgenden Form umgewandelt: "-d,ddd,ddd.ddd...". Das Format "n"
// entspricht dem Format "f", allerdings enthält der resultierende String Tausendertrennzeichen.

Var
  FormatierteZahl: String;
  Zahl: double;
// [...]
Zahl := 1000;
FormatierteZahl := Format('%8.2n', [Zahl]);
Gruß
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Dreier Dezimalpunkt

  Alt 23. Jul 2009, 12:38
Ich war mit meinem Edit aber schneller
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von holliesoft
holliesoft

Registriert seit: 4. Apr 2005
Ort: Gau-Algesheim
250 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Dreier Dezimalpunkt

  Alt 23. Jul 2009, 12:40
Zitat von DeddyH:
Ich war mit meinem Edit aber schneller
Mist

[edit] Aber meines ist ausführlicher [/edit]
  Mit Zitat antworten Zitat
mannewolff

Registriert seit: 21. Okt 2008
48 Beiträge
 
RAD-Studio 2009 Arc
 
#6

Re: Dreier Dezimalpunkt

  Alt 23. Jul 2009, 14:09
Ich habe jetzt

FloatToStrF(wert, ffnumber, 10, 2);

genommen.

Nun gibt es aber eine NumberformatException beim Rückwärtweg. Muss ich die Dezimaltrennzeichen jetzt händisch wieder rausnehmen.

a : Integer

edit.text := FloatToStrF(a, ffnumber, 10, 2);
...
a := StrToFloat(a);

Ich habe mal StrToFloazDef angeguckt, da steht aber: "Tausendertrennzeichen und Währungssymbole sind nicht zulässig. "
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#7

Re: Dreier Dezimalpunkt

  Alt 23. Jul 2009, 14:25
Hallo,

imho ja. z.B oder StringReplace oder ...
Delphi-Quellcode:
s := '1.000.000,44';
while Pos(ThousandSeparator,s) > 0 do
  Delete(s,Pos(ThousandSeparator,s),1);
nehme an das Du nicht das Dezimaltrennzeichen meinst
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#8

Re: Dreier Dezimalpunkt

  Alt 23. Jul 2009, 16:01
HI,

du kannst aber auch mittels StringReplace(s, ThousandSeperator, '', [rfReplaceAll]) das ganze auf einen Rutsch machen. Wenn es dir auf Geschwindigkeit ankommt, würde ich allerdings keinen der genannten Wege bevorzugen. Ich denke mal, wenn man da mit Zeigern und Move() arbeitet, ist man schneller.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:23 Uhr.
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