AGB  ·  Datenschutz  ·  Impressum  







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

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

Ein Thema von DieDolly · begonnen am 15. Jan 2020 · letzter Beitrag vom 17. Jan 2020
Antwort Antwort
Seite 2 von 2     12   
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#1

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

  Alt 15. Jan 2020, 16:51
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.
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
383 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

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

  Alt 15. Jan 2020, 16:52
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.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

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

  Alt 15. Jan 2020, 17:05
Deswegen wollte ich die explizit Wissen haben, ob es sich um ein Dezimaltrennzeichen oder um ein Gruppierungstrennzeichen handelt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
491 Beiträge
 
Delphi 11 Alexandria
 
#4

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

  Alt 16. Jan 2020, 16:56
Wieso denn nicht einfach, so wie vorgesehen, mit den Formateinstellungen arbeiten?

Unter XE2 oder neuer:
1.234.ToString(TFormatSettings.Invariant) // Ergibt '1.234', auch auf deutschen Systemen Zwischen D2009 und XE2 musstest du die FormatSettings-Variable zwischenspeichern, bearbeiten und wiederherstellen, und dort manuell den DezimalSeparator auf '.' setzen.
Vor 2009 kenne ich keine Möglichkeit mehr, wie das ging, weil ich mit so alten Versionen schon seit Jahren nicht mehr arbeite.
Dennis

Geändert von Dennis07 (16. Jan 2020 um 16:59 Uhr)
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
669 Beiträge
 
Delphi 12 Athens
 
#5

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

  Alt 17. Jan 2020, 09:19
Wieso denn nicht einfach, so wie vorgesehen, mit den Formateinstellungen arbeiten?

Unter XE2 oder neuer:
1.234.ToString(TFormatSettings.Invariant) // Ergibt '1.234', auch auf deutschen Systemen
Schönes Beispiel, wie einem ein Thread, der eigentlich schon durch ist und in den ich nur mal so reingeklickt habe, einen total guten Hinweis gibt, weil da ein "neues" Feature seit Jahren an mir vorbeigegangen ist.

Ich benutze immer noch treudoof eine lokale TFormatSettings-Variable und setze den Decimalseperator auf "." und den ThousendSeperator auf ",". Dieses TFormatSettings.Invariant ist ziemlich cool, da werde ich mal ein paar Stellen im Code aufräumen können.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 20:04 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