DECIMAL im Manual
am 26.01.2007 16:50:14 von Karsten Wutzke
Hallo alle!
Ich beziehe mich auf das MySQL Manual 5.1:
http://dev.mysql.com/doc/refman/5.1/en/numeric-types.html
Da steht zu DECIMAL ziemlich in der Mitte:
"MySQL 5.1 stores DECIMAL and NUMERIC values in binary format. Before
MySQL 5.0.3, they were stored as strings. See Chapter 23, Precision
Math.
When declaring a DECIMAL or NUMERIC column, the precision and scale can
be (and usually is) specified; for example:
salary DECIMAL(5,2)
In this example, 5 is the precision and 2 is the scale. The precision
represents the number of significant digits that are stored for values,
and the scale represents the number of digits that can be stored
following the decimal point. If the scale is 0, DECIMAL and NUMERIC
values contain no decimal point or fractional part.
Standard SQL requires that the salary column be able to store any value
with five digits and two decimals. In this case, therefore, the range
of values that can be stored in the salary column is from -999.99 to
999.99."
Also das verstehe ich nicht wirklich. Scale ist klar, das sind die
Anzahlt Nachkommastellen. Auch am Beispiel einleuchtend.
Aber warum die 5 zu nur -999 und 999 führt geht an mir vorbei... Kann
nur raten: Stellt die Precision 5 Stellen zur Verfügung, wovon eins
für das Vorzeichen draufgeht und das andere für den Dezimalpunkt??
Bitte mal erklären wers weiß.
Danke und Gruß
Karsten
Re: DECIMAL im Manual
am 26.01.2007 17:19:43 von Axel Schwenke
"Karsten Wutzke" wrote:
>
> When declaring a DECIMAL or NUMERIC column, the precision and scale can
> be (and usually is) specified; for example:
>
> salary DECIMAL(5,2)
>
> In this example, 5 is the precision and 2 is the scale. The precision
> represents the number of significant digits that are stored for values,
> and the scale represents the number of digits that can be stored
> following the decimal point.
....
> Also das verstehe ich nicht wirklich. Scale ist klar, das sind die
> Anzahlt Nachkommastellen. Auch am Beispiel einleuchtend.
>
> Aber warum die 5 zu nur -999 und 999 führt geht an mir vorbei... Kann
> nur raten: Stellt die Precision 5 Stellen zur Verfügung, wovon eins
> für das Vorzeichen draufgeht und das andere für den Dezimalpunkt??
Precision ist die Anzahl *aller* Stellen. Scale bestimmt die Position
des Dezimalpunktes. Mathematisch wird hier einfach mit ganzen Zahlen
gerechnet und der Dezimalpunkt nur passend verschoben.
XL
Re: DECIMAL im Manual
am 29.01.2007 14:39:47 von Karsten Wutzke
On 26 Jan., 17:19, Axel Schwenke wrote:
>
> > Aber warum die 5 zu nur -999 und 999 führt geht an mir vorbei... Kann
> > nur raten: Stellt die Precision 5 Stellen zur Verfügung, wovon eins
> > für das Vorzeichen draufgeht und das andere für den Dezimalpunkt??P=
recision ist die Anzahl *aller* Stellen. Scale bestimmt die Position
> des Dezimalpunktes. Mathematisch wird hier einfach mit ganzen Zahlen
> gerechnet und der Dezimalpunkt nur passend verschoben.
>
> XL
Ah jetzt... da hat der Artikelschreiber natürlich nicht gerade das=20
beste Beispiel gewählt mit DECIMAL(5,2). Bei DECIMAL(7,4) z.B. wärs=20
wohl eindeutig...
Karsten