![]() |
wie erreiche ich Formatierung 123.456,789?
Guten Abend, allerseite.
Ich schaffe es nicht, eine Formatierung mit 1000er-Trennzeichen hin zu bekommen.
Delphi-Quellcode:
bringt die Fehlermeldung:
System.Globalization.NumberFormatInfo.NumberGroupSeparator('.');
TextBox2.Text := d.ToString('g'); Zitat:
Vielen Dank im Voraus. Jürgen |
Re: wie erreiche ich Formatierung 123.456,789?
Ich weiß nicht, ob es unter .Net auch die Funktion FormatFloat gibt...
Wäre aber evtl. ne Suche wert :) |
Re: wie erreiche ich Formatierung 123.456,789?
Wie wärs damit?
Delphi-Quellcode:
var FormatInfo: NumberFormatInfo;
FormatInfo := NumberFormatInfo.Create; FormatInfo.NumberGroupSeparator := '.'; TextBox2.Text := d.ToString('g', FormatInfo); |
Re: wie erreiche ich Formatierung 123.456,789?
@ 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
Delphi-Quellcode:
erhalte ich "123456,789", mit Deinem Vorschlag das gleiche Ergebnis nur mit einem Dezimalpunkt.
TextBox2.Text := d.ToString('g');
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:
ergibt 123.456.789 - sehr erstaunlich, denn laut Hilfe sollte sollte bei Übereinstimmung von NumberGroupSeperator und NumberDecimalSeperator eine ArgumentExeption ausgelöst werden.
var FormatInfo: NumberFormatInfo;
FormatInfo := NumberFormatInfo.Create; FormatInfo.NumberGroupSeparator := '.'; TextBox2.Text := d.ToString('n', FormatInfo); So hat's dann endlich geklappt:
Delphi-Quellcode:
var FormatInfo: NumberFormatInfo;
FormatInfo := NumberFormatInfo.Create; FormatInfo.NumberGroupSeparator := '.'; FormatInfo.NumberDecimalSeperator := ','; TextBox2.Text := d.ToString('n', FormatInfo); |
Re: wie erreiche ich Formatierung 123.456,789?
Warum willst du überhaupt an den Globalization-Einstellungen herumfummeln und übernimmst nicht einfach die, welche der User in Windows definiert hat?
|
Re: wie erreiche ich Formatierung 123.456,789?
@ khabarakh
Guten Morgen, Sebastian. Will ich ja eigentlich gar nicht - es zwingt mich die schiere Not. :-D 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
Delphi-Quellcode:
erhielt ich das gewünschte (Teil)ergebnis.
FormatInfo.NumberDecimalSeperator := ',';
Leider habe ich trotz eifrigen Suchens noch nicht die gewünschten Informationen für die Formatierung gefunden. Mit
Delphi-Quellcode:
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?!
TextBox2.Text := d.ToString('n',FormatInfo);
Vielen Dank im Voraus und noch einen schönen Tag. Jürgen |
Re: wie erreiche ich Formatierung 123.456,789?
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; |
Re: wie erreiche ich Formatierung 123.456,789?
Zitat:
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:
Delphi-Quellcode:
Das entspricht dann ziemlich genau Heffalumps Lösung.
d.ToString('n3');
|
Re: wie erreiche ich Formatierung 123.456,789?
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz