AGB  ·  Datenschutz  ·  Impressum  







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

Darstellung einer Zahl im DBGrid

Ein Thema von khh · begonnen am 27. Mär 2012 · letzter Beitrag vom 30. Mär 2012
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Darstellung einer Zahl im DBGrid

  Alt 27. Mär 2012, 14:57
Ganz einfach: LPAD füllt links mit Leerzeichen (oder einem optional anzugebenden) bis zur angegebenen Länge auf. Und da das Leerzeichen einen kleineren ASCII-Wert als '0' hat, stimmt anschließend die alphanumerische mit der nummerischen Sortierung überein. Für Details zu der Funktion siehe firebirdsql.org.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#12

AW: Darstellung einer Zahl im DBGrid

  Alt 27. Mär 2012, 15:04
Ganz einfach: LPAD füllt links mit Leerzeichen (oder einem optional anzugebenden) bis zur angegebenen Länge auf. Und da das Leerzeichen einen kleineren ASCII-Wert als '0' hat, stimmt anschließend die alphanumerische mit der nummerischen Sortierung überein. Für Details zu der Funktion siehe firebirdsql.org.
ok, dann muss ich wohl die Stringlänge anpassen, da das Feld an sich schon char(20) ist.

aber weshalb funktioniert cast nach float nicht??
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Darstellung einer Zahl im DBGrid

  Alt 27. Mär 2012, 15:28
Ich habe den Wertebereich von Firebird-Float nicht im Kopf, aber möglicherweise kommst Du mit Deinen Zahlen da in einen Grenzbereich, wo es ungenau wird (das haben Fließkommazahlen ja leider so an sich).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Iwo Asnet

Registriert seit: 11. Jun 2011
313 Beiträge
 
#14

AW: Darstellung einer Zahl im DBGrid

  Alt 27. Mär 2012, 16:17
Sagt mal, ist es nicht ein wenig verwunderlich, wenn ein EAN-Code, der aus ZEICHEN besteht, als FLOAT in einer DB landet? Das ist grenzwertig gefährlich.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Darstellung einer Zahl im DBGrid

  Alt 27. Mär 2012, 16:27
Zitat:
ich habe eine EAN13 in einem DB-Feld vom Typ char().
Wo landet da ein Float in der DB? Der Cast war ein Versuch beim Auslesen für die Sortierung.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#16

AW: Darstellung einer Zahl im DBGrid

  Alt 28. Mär 2012, 06:51
Sagt mal, ist es nicht ein wenig verwunderlich, wenn ein EAN-Code, der aus ZEICHEN besteht, als FLOAT in einer DB landet? Das ist grenzwertig gefährlich.

die EAN steht als String in einem 20 Zeichen grossen char()- Feld in der DB
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#17

AW: Darstellung einer Zahl im DBGrid

  Alt 28. Mär 2012, 08:40
Sagt mal, ist es nicht ein wenig verwunderlich, wenn ein EAN-Code, der aus ZEICHEN besteht, ...
Streng genommen besteht der EAN-Code aus Ziffern
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Iwo Asnet

Registriert seit: 11. Jun 2011
313 Beiträge
 
#18

AW: Darstellung einer Zahl im DBGrid

  Alt 28. Mär 2012, 10:11
Sagt mal, ist es nicht ein wenig verwunderlich, wenn ein EAN-Code, der aus ZEICHEN besteht, ...
Streng genommen besteht der EAN-Code aus Ziffern
Strenger genommen besteht der EAN-Code aus Zeichen, die auf die Ziffern beschränkt sind.

die EAN steht als String in einem 20 Zeichen grossen char()- Feld in der DB
Und dann wird er als FLOAT gecastet und man wundert sich, das die letzten Stellen flöten gehen?
aus einer gültigen EAN "4008400401027" wird
4008400388096
Versuche es mit numeric(13), dann bleiben alle Stellen erhalten. Wenn Firebird das kann.

Hier mal der Grund:
Zitat von Firebird 2.0 Online Manual:
FLOAT specifies a single-precision, 32-bit datatype with a precision of approximately 7 decimal digits.
Stimmt sogar auffallend.
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#19

AW: Darstellung einer Zahl im DBGrid

  Alt 29. Mär 2012, 07:47
>> Und dann wird er als FLOAT gecastet und man wundert sich, das die letzten Stellen flöten gehen?

wenn dem so wäre hätte ich die Erklärung die ich suche, dem ist aber nicht so, die letzen Stellen werden durch andere Ziffern "ersetzt"
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Darstellung einer Zahl im DBGrid

  Alt 29. Mär 2012, 08:16
Ich dachte, mit dem LPAD sei das Problem gestorben
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 10:14 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