2017-01-02 2 views
0

Ich versuchte Tabelle mit Dezimal-Typ zu verändern:Tabelle dezimal ändern?

porog decimal(6,0) 

Wenn ich Bereich zu ändern auf den (6, 4) und speichern Sie es, bekomme ich wieder (6,0). Warum?

Jetzt habe ich Feld decimal(15,14)

Wenn ich Wert legen:

3,41557740625523

ich: 3.00000000000000

+0

Wie änderst du diese Veränderung? – RiggsFolly

+1

Und nur eine Randnotiz: Ist 'decimal (6,0)' im Grunde keine ganze Zahl? – RiggsFolly

+0

Also habe ich versucht, Nummer mit 14 Zahlen nach Koma zu speichern, und ganzzahliger Teil ist 0-000. Welches Dezimalformat sollte ich verwenden? – Dev

Antwort

0

ich ein einfaches Schema aufgebaut, die Dinge zu testen, die Sie erwähnt, aber ich kann Ihre Probleme bezüglich des Verlustes von Nachkommastellen nicht reproduzieren. Kann es sein, dass ein SQL-Client oder eine Abfrage eine Rundung durchführt? Wie auch immer, schauen Sie sich das Schema, die Inserts und die Ausgabe an. Vielleicht darüber hilft und Antworten zumindest Ihre Frage "Was Dezimalformat soll ich verwenden?":

create table test (
    yourfield decimal(15,14), 
    onlyaftercomma decimal(18,18) 
); 
insert into test (yourfield,onlyaftercomma) values 
    (3.41557740625523, 0.00041557740625523); 

Then ...

select * from test 

Ausbeuten ...

yourfield  | onlyaftercomma 
3.41557740625523 | 0.00041557740625523