Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi StrToInt('1,234') gibt es da was für? (https://www.delphipraxis.net/203120-strtoint-1-234-gibt-es-da-fuer.html)

DieDolly 15. Jan 2020 16:51

AW: StrToInt('1,234') gibt es da was für?
 
Ich speichere die Zahl jetzt ohne Formatierung ab. Aber vorher war es systemabhängig ob 1.234 oder 1,234 gespeichert wurde. Intern sollte es aber als 1234 verarbeitet werden.
Das sind statistische Daten. Deswegen habe ich die Formatierung jetzt rausgenommen. Die findet jetzt woanders statt.

stifflersmom 15. Jan 2020 16:52

AW: StrToInt('1,234') gibt es da was für?
 
Zitat:

Zitat von Neutral General (Beitrag 1455241)
Die wichtigste Frage die hier nirgendwo beantwortet wird:

Soll der Wert der Zahl 1234 oder 1,234 sein?
Ich glaube ansonsten reden wir aneinander vorbei.

Eigentlich nicht. Da ein Integer generell ja keine Nachkommastellen hat und der TE expliziet vom StrToInt spricht, reicht es doch aus, generell Kommas und Punkte aus der Zeichenkette vor dem Umwandeln zu entfernen.

Luckie 15. Jan 2020 17:05

AW: StrToInt('1,234') gibt es da was für?
 
Deswegen wollte ich die explizit Wissen haben, ob es sich um ein Dezimaltrennzeichen oder um ein Gruppierungstrennzeichen handelt.

Redeemer 15. Jan 2020 18:31

AW: StrToInt('1,234') gibt es da was für?
 
Ich frage Windows, was der Nutzer für ein Tausendertrennzeichen hat und lösche dieses, bevor ich irgendwas von String to Kommazahl umwandel.
Delphi-Quellcode:
function StrToCurrLocal(const s: string): Currency;
begin
  Result := StrToCurr(StringReplace(s, GetLocaleChar(GetThreadLocale(), LOCALE_STHOUSAND, #0), '', [rfReplaceAll]));
end;
Extended analog.

Uwe Raabe 15. Jan 2020 21:28

AW: StrToInt('1,234') gibt es da was für?
 
Zitat:

Zitat von Redeemer (Beitrag 1455262)
Ich frage Windows, was der Nutzer für ein Tausendertrennzeichen hat und lösche dieses, bevor ich irgendwas von String to Kommazahl umwandel.

Das funktioniert aber auch nicht immer, wenn die Datei auf einem anderen Windows erzeugt wurde.

DieDolly 15. Jan 2020 21:42

AW: StrToInt('1,234') gibt es da was für?
 
Zitat:

Das funktioniert aber auch nicht immer, wenn die Datei auf einem anderen Windows erzeugt wurde.
Deswegen speichere ich sie jetzt ohne rumzufummeln ab.

Ydobon 15. Jan 2020 23:15

AW: StrToInt('1,234') gibt es da was für?
 
Wenn für Nachkommastellen Null angegeben ist, dann können es doch eigentlich nur Tausendertrenner sein.

Luckie 15. Jan 2020 23:25

AW: StrToInt('1,234') gibt es da was für?
 
Ist mittlerweile alles geklärt.

DieDolly 16. Jan 2020 05:56

AW: StrToInt('1,234') gibt es da was für?
 
Zitat:

Wenn für Nachkommastellen Null angegeben ist
Es ist aber keine Dezimalzahl.

Codehunter 16. Jan 2020 11:09

AW: StrToInt('1,234') gibt es da was für?
 
Zitat:

Zitat von Luckie (Beitrag 1455283)
Ist mittlerweile alles geklärt.

Nicht ganz...

Zitat:

Zitat von Luckie (Beitrag 1455228)
Also sollte auf einem System mit englischen Regianaleinstellungen 1.234 rauskommen.

Was hat dich nur zu diesem Freudschen Vertipper gebracht? :lol:

So, Thema fertig. Deckel zu und Licht aus. 8-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:16 Uhr.
Seite 2 von 3     12 3      

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