AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Prism wie erreiche ich Formatierung 123.456,789?
Thema durchsuchen
Ansicht
Themen-Optionen

wie erreiche ich Formatierung 123.456,789?

Ein Thema von gfjs · begonnen am 15. Mai 2006 · letzter Beitrag vom 17. Mai 2006
Antwort Antwort
gfjs

Registriert seit: 8. Dez 2005
Ort: Hohenkammer
298 Beiträge
 
Delphi 2006 Professional
 
#1

wie erreiche ich Formatierung 123.456,789?

  Alt 15. Mai 2006, 18:37
Guten Abend, allerseite.

Ich schaffe es nicht, eine Formatierung mit 1000er-Trennzeichen hin zu bekommen.

Delphi-Quellcode:
System.Globalization.NumberFormatInfo.NumberGroupSeparator('.');
TextBox2.Text := d.ToString('g');
bringt die Fehlermeldung:

Zitat:
E2233 Auf Eigenschaft 'NumberGroupSeparator' kann hier nicht zugegriffen werden
Es war schon schwierig genug, in der Hilfe auf NumberFormatInfo zu stoßen, wenn man nicht genau weiß, wonach man suchen soll. Jetzt bin ich endlich bis zum NumberGoupSeperator vorgestoßen, aber die Beispiele in c++ und c# helfen mir leider nicht weiter. Aber vielleicht kann mir ja von Euch jemand hilfreich unter die Arme greifen?!

Vielen Dank im Voraus.

Jürgen
Mein neues Motto (von "Unbekannt"):
Gewinnen: Wenn Du kannst - Verlieren: Wenn Du musst - Aufgeben: NIE!
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: wie erreiche ich Formatierung 123.456,789?

  Alt 15. Mai 2006, 18:38
Ich weiß nicht, ob es unter .Net auch die Funktion FormatFloat gibt...
Wäre aber evtl. ne Suche wert
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#3

Re: wie erreiche ich Formatierung 123.456,789?

  Alt 15. Mai 2006, 18:42
Wie wärs damit?

Delphi-Quellcode:
var FormatInfo: NumberFormatInfo;

FormatInfo := NumberFormatInfo.Create;
FormatInfo.NumberGroupSeparator := '.';
TextBox2.Text := d.ToString('g', FormatInfo);
  Mit Zitat antworten Zitat
gfjs

Registriert seit: 8. Dez 2005
Ort: Hohenkammer
298 Beiträge
 
Delphi 2006 Professional
 
#4

Re: wie erreiche ich Formatierung 123.456,789?

  Alt 15. Mai 2006, 19:20
@ SubData

Hatte ich schon versucht: "nicht deklarierter Bezeichner ....". Gibt's zwar in .NET, aber nur in VCL-, nicht in WinForms-Anwendungen.

@ Dax

Klappt leider nicht. Mit

TextBox2.Text := d.ToString('g'); erhalte ich "123456,789", mit Deinem Vorschlag das gleiche Ergebnis nur mit einem Dezimalpunkt.

Trotzdem vielen Dank für Eure Hilfe und noch einen schönen Abend.

Jürgen

PS.

Hab noch ein wenig herumprobiert:

statt ('g',FormatInfo) jetzt ('n',FormatInfo):

Delphi-Quellcode:
var FormatInfo: NumberFormatInfo;

FormatInfo := NumberFormatInfo.Create;
FormatInfo.NumberGroupSeparator := '.';
TextBox2.Text := d.ToString('n', FormatInfo);
ergibt 123.456.789 - sehr erstaunlich, denn laut Hilfe sollte sollte bei Übereinstimmung von NumberGroupSeperator und NumberDecimalSeperator eine ArgumentExeption ausgelöst werden.

So hat's dann endlich geklappt:

Delphi-Quellcode:
var FormatInfo: NumberFormatInfo;

FormatInfo := NumberFormatInfo.Create;
FormatInfo.NumberGroupSeparator := '.';
FormatInfo.NumberDecimalSeperator := ',';
TextBox2.Text := d.ToString('n', FormatInfo);
Mein neues Motto (von "Unbekannt"):
Gewinnen: Wenn Du kannst - Verlieren: Wenn Du musst - Aufgeben: NIE!
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#5

Re: wie erreiche ich Formatierung 123.456,789?

  Alt 15. Mai 2006, 20:16
Warum willst du überhaupt an den Globalization-Einstellungen herumfummeln und übernimmst nicht einfach die, welche der User in Windows definiert hat?
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
gfjs

Registriert seit: 8. Dez 2005
Ort: Hohenkammer
298 Beiträge
 
Delphi 2006 Professional
 
#6

Re: wie erreiche ich Formatierung 123.456,789?

  Alt 16. Mai 2006, 03:08
@ khabarakh

Guten Morgen, Sebastian.

Will ich ja eigentlich gar nicht - es zwingt mich die schiere Not.

Spaß beiseite - ich habe echte Probleme mit der Formatierung unter .NET. Zuerst wollte ich ja nur den Punkt als 1000er-Trennzeichen haben. Die Folge war, dass ich als Ergebnis 123.456.798 erhielt, obwohl auf meinem Rechner das Komma als Dezimaltrenner eingestellt ist. Was mich - wie schon erwähnt - wundert, weil bei übereinstimmenden NumberDecimalSeperator und NumberGrupSeperator eigentlich eine ArgumentExeption ausgelöst werden sollte. Erst mit Einfügen der Zeile FormatInfo.NumberDecimalSeperator := ','; erhielt ich das gewünschte (Teil)ergebnis.

Leider habe ich trotz eifrigen Suchens noch nicht die gewünschten Informationen für die Formatierung gefunden. Mit TextBox2.Text := d.ToString('n',FormatInfo); erhalte ich nur die Standardformatierung mit zwei Nachkommastellen und ich habe noch nicht herausgefunden, wie ich die Anzahl der Kommastellen verändern kann. Vielleicht kannst Du mir da weiterhelfen?!

Vielen Dank im Voraus und noch einen schönen Tag.

Jürgen
Mein neues Motto (von "Unbekannt"):
Gewinnen: Wenn Du kannst - Verlieren: Wenn Du musst - Aufgeben: NIE!
  Mit Zitat antworten Zitat
Heffalump

Registriert seit: 3. Aug 2005
278 Beiträge
 
RAD-Studio 2009 Ent
 
#7

Re: wie erreiche ich Formatierung 123.456,789?

  Alt 16. Mai 2006, 12:24
So müsste es auch gehen:

Delphi-Quellcode:
procedure TWinForm.Button1_Click(sender: System.Object; e: System.EventArgs);
var lvTest: System.Double;
begin
  lvTest := 123456789 / 1000;
  MessageBox.Show(lvTest.ToString('0,000.000'));
end;
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#8

Re: wie erreiche ich Formatierung 123.456,789?

  Alt 16. Mai 2006, 12:37
Zitat von gfjs:
Will ich ja eigentlich gar nicht - es zwingt mich die schiere Not.
Hatte ich mir schon fast gedacht .
Wenn du den "N"-Formatter benutzt, musst du überhaupt nichts an den Einstellungen ändern. Eine fixe Angabe der Nachkommastellen (Default ist 2, wie du ja schon selbst bemerkt hast) fügst du einfach hinten an:
d.ToString('n3'); Das entspricht dann ziemlich genau Heffalumps Lösung.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
gfjs

Registriert seit: 8. Dez 2005
Ort: Hohenkammer
298 Beiträge
 
Delphi 2006 Professional
 
#9

Re: wie erreiche ich Formatierung 123.456,789?

  Alt 17. Mai 2006, 03:17
Guten Morgen und vielen Dank!

Ist ja recht einfach - wenn man's weiß. Schön wäre halt, wenn es in der Hilfe auch so einfach zu finden wäre. Entweder steht's so nicht drin oder ich hab's bei der Menge der Seiten, die ich durchsucht habe, einfach übersehen.

Ich wünsche Euch noch einen schönen Tag.

Jürgen
Mein neues Motto (von "Unbekannt"):
Gewinnen: Wenn Du kannst - Verlieren: Wenn Du musst - Aufgeben: NIE!
  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 11:35 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