![]() |
Datenbank: sqlite • Version: 3 • Zugriff über: zeos
sqlite + Dezimalstellen
Ich möchte mit sqllite ein Prg erstellen, bei dem ein Feld ca. 10 Stellen breit ist mit fix 2 Kommastellen. Gibt es eine Möglichkeit in sqlite so ein Feld zu erstellen oder habt ihr mir einen anderen Tipp? Es ist wichtig, dass auch bei denjenigen Feldern, bei denen Beträge ohne Kommastellen, hinten zwei Kommastellen sind, einfach mit 00. Beispiel: 55.00 oder 55.50 oder 55.55 Bin um jeden Hinweis dankbar.
Peter |
Re: sqlite + Dezimalstellen
Multipliziere die werte mit 100 und speichere sie als integer
|
Re: sqlite + Dezimalstellen
Hallo Peter,
unter ![]() FLOAT, REAL, DOUBLE PRECISION sind SQL-Typen mit "ungefährer" Größenangabe. NUMERIC und DECIMAL speichern den genauen Wert. Wenn es dir darauf ankommt, ist Markus' Hinweis ein geeigneter Ausweg. Du musst unbedingt zwischen der Speicherung in einer DB und der Darstellung unterscheiden: Eine Dezimalzahl wird "irgendwie" in der DB gespeichert; wie genau, muss dich überhaupt nicht interessieren. Du kannst sicher sein, dass die Zahlenwerte "500" und "500.000" identisch gespeichert werden. Lediglich bei der Darstellung, z.B. in der GUI oder beim Ausdrucken, musst/kannst du die Nachkommastellen steuern; aber das hat überhaupt nichts mit der Speicherung in der DB zu tun. Jürgen |
Re: sqlite + Dezimalstellen
SqLite versucht die für den wert beste Speicherung zu verwenden. sollen es genau 2 Stellen sein, würde ich wie geschrieben als integer ( mit 100 multipliziert) speichern.
|
Re: sqlite + Dezimalstellen
Ja, ich könnte es mir vorstellen, doch nun habe ich ein ganz anderes Brett vor dem Kopf: Wenn ich ganze Zahlen habe, wie zeige ich diese dann mit Kommastelle an: Im Grid und so. Ich könnte aber auch 2 Eingabefelder machen, die zusammenfügen und durch 100 teilen und dann in einem Float Feld speichern. Ist nicht so gut, doch wenns nicht geht.
Peter |
Re: sqlite + Dezimalstellen
in der Abfrage wieder durch 100 teilen:
SQL-Code:
select Betrag / 100 as Betrag, ...
|
Re: sqlite + Dezimalstellen
Ich werde es so versuchen:
Feld Numeric, dann das Eingabefeld Formatieren ######0.00, dann beim Speichern Feld * 100 und dann / 100 und dann speichern. Oder einfach Nummeric und dann die Eingabe machen lassen mit oder ohne Punkt, dann mal * 100 und wieder / 100 und dann speichern. Ich hoffe so geht es. Bin halt immer noch ein Pascal Frischling. Peter |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:38 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