Das ist nicht der Punkt.
Zahlenwerte sauber formatiert ausgeben
-
- Beiträge: 830
- Registriert: Mi 3. Jun 2020, 07:18
- OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
- CPU-Target: Aarch64 bis Z80 ;)
- Wohnort: München
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: Zahlenwerte sauber formatiert ausgeben
Hi!
Doch, das ist der Punkt.
Wenn man str benutzt, kann man sich die sinnlose Zeit mit dem Lesen der Docs des MessageComposers oder von format sparen.
Eine Listbox nehmen, den Font auf irgendetwas monotypiges einstellen (Courier, Liberation Mono, ...) und das Thema ist erledigt.
Ich hab nie verstanden, warum die grundlegenden Pascal Funktionen wie str durch kompliziertere Routinen, die weniger können (format, floatToStr, ..) ersetzt worden sind.
Winni
Doch, das ist der Punkt.
Wenn man str benutzt, kann man sich die sinnlose Zeit mit dem Lesen der Docs des MessageComposers oder von format sparen.
Eine Listbox nehmen, den Font auf irgendetwas monotypiges einstellen (Courier, Liberation Mono, ...) und das Thema ist erledigt.
Ich hab nie verstanden, warum die grundlegenden Pascal Funktionen wie str durch kompliziertere Routinen, die weniger können (format, floatToStr, ..) ersetzt worden sind.
Winni
Re: Zahlenwerte sauber formatiert ausgeben
Ehrlich gesagt, die Symbole in "str(x:10:3, s)" sind genauso mysteriös wie die in "s := Format('%10.3f', [x])", wenn man's nicht weiß.Niesi hat geschrieben: ↑Di 17. Mai 2022, 00:51Ich programmiere mit Pascal, weil das eine sehr gut lesbare, sehr gut verständliche und logisch aufgebaute Programmiersprache ist. Zumindest fast immer. Format gehört nach meiner Meinung zu den sehr unglücklich gestalteten Funktionen. Und: mit Str erreiche ich mein Ziel, die Ergebnisse sauber anzuzeigen, auf eine sehr einfache, logisch nachvollziehbare Art und Weise.
Weil die str() so aufrufen, dass keine Leerzeichen vorangestellt werden. Es sieht einfach falsch aus, wenn in dem String
Code: Alles auswählen
'Die Temperatur beträgt heute ' + IntToStr(Temperatur) + '°C'
- Niesi
- Lazarusforum e. V.
- Beiträge: 334
- Registriert: So 26. Jun 2016, 19:44
- OS, Lazarus, FPC: Linux Mint Cinnamon (Windows wenn notwendig), Lazarus 3.0 FPC 3.3.1
Re: Zahlenwerte sauber formatiert ausgeben
Ich würde in dem Fall einfach ein Plus mit ausgeben. Wieso das Minus so bevorzugen?
Dann geht das ...
Dann geht das ...
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...
- Niesi
- Lazarusforum e. V.
- Beiträge: 334
- Registriert: So 26. Jun 2016, 19:44
- OS, Lazarus, FPC: Linux Mint Cinnamon (Windows wenn notwendig), Lazarus 3.0 FPC 3.3.1
Re: Zahlenwerte sauber formatiert ausgeben
Sie sind ja nicht ersetzt worden, sie sind glücklicherweise noch da ...Winni hat geschrieben: ↑Di 17. Mai 2022, 15:06Hi!
Doch, das ist der Punkt.
Wenn man str benutzt, kann man sich die sinnlose Zeit mit dem Lesen der Docs des MessageComposers oder von format sparen.
Eine Listbox nehmen, den Font auf irgendetwas monotypiges einstellen (Courier, Liberation Mono, ...) und das Thema ist erledigt.
Ich hab nie verstanden, warum die grundlegenden Pascal Funktionen wie str durch kompliziertere Routinen, die weniger können (format, floatToStr, ..) ersetzt worden sind.
Winni
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Zahlenwerte sauber formatiert ausgeben
Weil ihr Deutschen und Österreicher in der Office Welt lieber ein Komma anstelle des Punktes als Dezimaltrenner habt, mussten so komplizierte Funktionen her. Str() und Val() arbeiten nur mit dem Computerfreundlichen Punkt.Winni hat geschrieben: ↑Di 17. Mai 2022, 15:06Hi!
Doch, das ist der Punkt.
Wenn man str benutzt, kann man sich die sinnlose Zeit mit dem Lesen der Docs des MessageComposers oder von format sparen.
Eine Listbox nehmen, den Font auf irgendetwas monotypiges einstellen (Courier, Liberation Mono, ...) und das Thema ist erledigt.
Ich hab nie verstanden, warum die grundlegenden Pascal Funktionen wie str durch kompliziertere Routinen, die weniger können (format, floatToStr, ..) ersetzt worden sind.
Winni
Da verstehe ich die Office-Welt nicht, wieso da die so Computerfeindliche Sachen durchwürgen müssen. Noch schlimmer mit dem 1000er Trenner, das hat die EU perfekt hingekriegt, da wird sogar Punkt als Trenner missbraucht.
10.000 € kann man sehr gut mit 10€ verwechseln.
Bei 10'000 wie wir es in der CH verwenden gibt es kaum eine Verwechslung.
Als was ist leserlicher 10.000,00 oder 10'100.00 ?
Un dann kommt noch dazu, wen man nicht mehr so gut sieht, verwechselt man ein Komma gut mit einem Punkt. Aber ein Hochkomma nicht.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Zahlenwerte sauber formatiert ausgeben
Nur sind diese Trenner wesentlich älter als die ganzen Computer. Und warum sollen wir diese Anglizismen annehmen
DIe Antwort die ich bisher dazu bekommen habe -> Das ist Delphicompatibel.
BTW: Dem Programm ist das Dezimalzeichen wurscht - nur die Darstellungsschicht benötigt es in beiden Richtungen.
DIe Antwort die ich bisher dazu bekommen habe -> Das ist Delphicompatibel.
BTW: Dem Programm ist das Dezimalzeichen wurscht - nur die Darstellungsschicht benötigt es in beiden Richtungen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: Zahlenwerte sauber formatiert ausgeben
Hi!
Wir werden täglich mit übelsten Anglizismen vollgequatscht. Z.b. "In 2022" - das ist falsches Deutsch - in der Tagesschau. Würg.
Da kann es doch nicht das Problem sein sich mal an den Punkt als Dezimal-Trenner zu gewöhnen.
Und als Tausender-Trenner benutze ich seit Jahrzehnten das Leerzeichen. Das ist international verständlich.
Winni
Wir werden täglich mit übelsten Anglizismen vollgequatscht. Z.b. "In 2022" - das ist falsches Deutsch - in der Tagesschau. Würg.
Da kann es doch nicht das Problem sein sich mal an den Punkt als Dezimal-Trenner zu gewöhnen.
Und als Tausender-Trenner benutze ich seit Jahrzehnten das Leerzeichen. Das ist international verständlich.
Winni
Re: Zahlenwerte sauber formatiert ausgeben
Nach diesem Lieblingsthema kommt als nächstes eine Neuauflage der Windows-gegen-Linux-Keilerei?
Ich geb zu, das Beispiel war nicht so toll, weil die Luft-Temperatur negativ sein kann. Aber schon bei der Körpertemperatur sieht dein Vorschlag seltsam aus: "Fieber: +39°"...
Oder aus der Computerei: "Freier Speicher: +313 GB" (gibt es eine negative Speicherkapazität? Vielleicht für "negative Logik", in der 0 und 1 vertauscht sind?)
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: Zahlenwerte sauber formatiert ausgeben
Hi!
Nix Keilerei. Für mich war die Lokalisierung seinezeit in Delphi schon ein großer Blödsinn. Und dann noch pfuschig implementiert.
Wer sich mit dem Komma rumquälen will darf das gerne tun. Ich hab schon in den 80ern den Punkt bevorzugt.
Negatives Speichervolumen hab ich immerhin schon einmal gesehen. Nachdem ich nach mehreren Anläufen fdisk überzeugt habe, die Geometrie einer sterbenden Platte anzuzeigen. Da gabs negative bytes. Kurz danach war sie Elektroschrott.
Winni
PS : Mit dem Vorzeichen geht das so:
Nix Keilerei. Für mich war die Lokalisierung seinezeit in Delphi schon ein großer Blödsinn. Und dann noch pfuschig implementiert.
Wer sich mit dem Komma rumquälen will darf das gerne tun. Ich hab schon in den 80ern den Punkt bevorzugt.
Negatives Speichervolumen hab ich immerhin schon einmal gesehen. Nachdem ich nach mehreren Anläufen fdisk überzeugt habe, die Geometrie einer sterbenden Platte anzuzeigen. Da gabs negative bytes. Kurz danach war sie Elektroschrott.
Winni
PS : Mit dem Vorzeichen geht das so:
Code: Alles auswählen
const Vorzeichen : array[boolean] of string = ('-','+');
var f : single;
s : string;
begin
f := -1.23;
str(abs(f),s);
s := Vorzeichen [f>=0] + s;
showMessage (s);
end;
- Niesi
- Lazarusforum e. V.
- Beiträge: 334
- Registriert: So 26. Jun 2016, 19:44
- OS, Lazarus, FPC: Linux Mint Cinnamon (Windows wenn notwendig), Lazarus 3.0 FPC 3.3.1
Re: Zahlenwerte sauber formatiert ausgeben
Das Beispiel ist schon in Ordnung, mir fiel das mit dem Plus nur sehr spontn ein.wp_xyz hat geschrieben: ↑Di 17. Mai 2022, 19:07Ich geb zu, das Beispiel war nicht so toll, weil die Luft-Temperatur negativ sein kann. Aber schon bei der Körpertemperatur sieht dein Vorschlag seltsam aus: "Fieber: +39°"...
Oder aus der Computerei: "Freier Speicher: +313 GB" (gibt es eine negative Speicherkapazität? Vielleicht für "negative Logik", in der 0 und 1 vertauscht sind?)
Wenn es kompatibel zu Delphi gemacht wurde, dann ist das ausreichend als Begründung.af0815 hat geschrieben: ↑Di 17. Mai 2022, 17:26Nur sind diese Trenner wesentlich älter als die ganzen Computer. Und warum sollen wir diese Anglizismen annehmen
DIe Antwort die ich bisher dazu bekommen habe -> Das ist Delphicompatibel.
BTW: Dem Programm ist das Dezimalzeichen wurscht - nur die Darstellungsschicht benötigt es in beiden Richtungen.
Da war damals wohl sehr viel "Begeisterung" für alles Machbare, als wirklich jeder Unsinn wie zum Beispiel das Komma und der Punkt nach deutschen Schreibregeln eingeführt wurden. Was da tagtäglich an Kosten und Programmieraufwand verursacht wird, das ist einfach irre ...
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...
Re: Zahlenwerte sauber formatiert ausgeben
Nun ja, wenn es bei uns das Komma ist, dann ist es doch völlig richtig, dies zu verwenden.
Andernfalls müsste man konsequenter Weise jede andere Sprache als Englisch als Ketzerei bezeichnen
Andernfalls müsste man konsequenter Weise jede andere Sprache als Englisch als Ketzerei bezeichnen
Gruß, Michael
- Niesi
- Lazarusforum e. V.
- Beiträge: 334
- Registriert: So 26. Jun 2016, 19:44
- OS, Lazarus, FPC: Linux Mint Cinnamon (Windows wenn notwendig), Lazarus 3.0 FPC 3.3.1
Re: Zahlenwerte sauber formatiert ausgeben
Das Komma ist meines Wissens in jeder Sprache ein Komma.
Und im Sinne der Standardisierung und der Vernunft wäre es besser, in Software ausschließlich einen Dezimalseparator zu verwenden.
Das würde unheimlich Kosten reduzieren ...
Und im Sinne der Standardisierung und der Vernunft wäre es besser, in Software ausschließlich einen Dezimalseparator zu verwenden.
Das würde unheimlich Kosten reduzieren ...
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...
Re: Zahlenwerte sauber formatiert ausgeben
dann frage ich dich, wer auf die schwachsinnige Idee kam, den Punkt als Standard festzulegen, wenn es (bei uns) ein Komma ist?
Das führt zu nichts; ich habe auch schon oft mit dem Punkt und dem Komma Kämpfe ausgetragen bei Verwendung meiner Software im "Ausland"...
Man muss es eben hinnehmen, dass es die meisten in der Welt verkehrt machen und einen Punkt verwenden
(Du merkst, ich nehme das Thema nicht so ganz ernst, weil ich so und so nichts am Problem ändern kann)
Das führt zu nichts; ich habe auch schon oft mit dem Punkt und dem Komma Kämpfe ausgetragen bei Verwendung meiner Software im "Ausland"...
Man muss es eben hinnehmen, dass es die meisten in der Welt verkehrt machen und einen Punkt verwenden
(Du merkst, ich nehme das Thema nicht so ganz ernst, weil ich so und so nichts am Problem ändern kann)
Gruß, Michael
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Zahlenwerte sauber formatiert ausgeben
Das ist dasselbe wie zwischen mm und Zoll, und den Ansichten auf technischen Zeichnungen. Sei froh das wir nicht mehr in Ellen, Klafter und Fuß rechnen dürfen Unser Problem ist eher das das in anderen Ländern so nebensächlich gesehen wird, das die dafür keine Vernünftigen Lösungen gebracht haben und die was sie gebracht haben eher als Krücken bezeichnet werden können. Egal ob in Zahlen oder zeichenketten - halbgare Sachen wie man sieht.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).