T-Rex: Double mit Komma?

Moin Leute,

bin da auf eine Merkwürdigkeit gestossen die ich hoffentlich mit eurer Hilfe nachvollziehen kann. Hab da eine Datenbank und da gibts ein Feld für Zinsen. zinsen double(4,2)
Es gibt einen Datenimport aus einer csv Datei. Zudem kann man die Daten via CMS ändern. Auf der Webseite gibts einen normalen select * from und dann werden die Zinsen ohne weitere Formatierung ausgegeben.
Wenn man die Daten per CSV einliest und nicht weiter editiert, dann werden die Zinsen auf der Webseite mit Komma ausgegeben (2,30). Hat man die Zinsen jedoch gespeichert, dann steht auf der Webseite 2.30.
Mir geht es bei meiner Frage NICHT um die Formatierung auf der Webseite. Ich würde nur gerne wissen ob es möglich ist double Werte mit Komma (,) in die Datenbank zu speichern? Anders kann ich mir das obige Phänomen nicht erklären.

Gruß
T-Rex

  1. Hallo,

    bin da auf eine Merkwürdigkeit gestossen die ich hoffentlich mit eurer Hilfe nachvollziehen kann. Hab da eine Datenbank und da gibts ein Feld für Zinsen.

    welches Datenbankmanagementsystem (z.B. DB2, Oracle, PostgreSQL, MS SQL-Server, MySQL, ...) in welcher Version unter welchem Betriebssystem ist denn im Einsatz.

    zinsen double(4,2)

    Wer kommt auf eine solche Idee? DBMS haben typischerweise Besseres zu bieten.

    Freundliche Grüße

    Vinzenz

    1. Danke für deine Antwort,

      ja die Angaben hab ich vergessen sorry:
      MySQL 5.5.8
      Windows Vista

      ja richtig double ist da nicht so toll, aber was soll ich machen, mein Vorgänger hat sich eben für double entschieden :(.

      Gruß
      T-Rex

      1. Hi!

        ja richtig double ist da nicht so toll, aber was soll ich machen, mein Vorgänger hat sich eben für double entschieden :(.

        Dem Vorgänger Bescheid sagen, dass er da einen Fehler gemacht hat und anschließend

        ALTER TABLE table MODIFY zinsen DECIMAL(4,2)

        Lo!

  2. Hi!

    Hab da eine Datenbank und da gibts ein Feld für Zinsen. zinsen double(4,2)

    Decimal oder Money wäre besser, weil mit diesen Feldtypen keine Rundungsfehler bei bestimmten Nachkommawerten entstehen.

    Ich würde nur gerne wissen ob es möglich ist double Werte mit Komma (,) in die Datenbank zu speichern?

    Im allgemeinen sind Zahlen sind für ihre interne Speicherung nicht auf ein bestimmtes Dezimal-Zeichen angewiesen. Dieses kommt nur beim Interpretieren von Literalen und Ausgeben in String-Form zur Anwendung. Du kannst also davon ausgehen, dass Probleme mit diesem Zeichen schon beim Interpretieren der Literale entstanden sind oder erst beim Ausgeben als String entstehen.

    Es gibt einen Datenimport aus einer csv Datei. Zudem kann man die Daten via CMS ändern. Auf der Webseite gibts einen normalen select * from und dann werden die Zinsen ohne weitere Formatierung ausgegeben.

    Selbst wenn du eine Formatierung unberücksichtigt lässt - irgendein System muss ja die Stringdarstellung erzeugen. Es ist quasi wie mit Zeichenkodierung. Man muss sich nicht darum kümmern, solange per Zufall alles richtig läuft. Aber wenn der nicht mehr mitspielt, sind die Probleme da.

    Lo!

    1. Bäääähhhhhh Kommando zurück...
      In dem durchsichtigen Code hab ich mich verguckt. Die Informationen kommen doch aus einem anderen Feld und das ist varchar(255). Also noch passender für Zinssätze...

      Eine Runde Mitleid, denn ich werde hier noch wahnsinnig :(.

      Danke für eure Mühen und Gruß
      T-Rex