アプリ版:「スタンプのみでお礼する」機能のリリースについて

例えば、以下のページ

www.javadrive.jp/mysql/datatype/index1.html

などを見ると

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

M:最大表示サイズを表す。正式な最大表示サイズは 255。
D:小数点型に適用され、小数点以下の桁数を表す。最大値は 30 だが、M-2 より大きくしないようにする。

アンパック浮動小数点数。CHAR カラムのように動作する。``アンパック'' とは、その数値が、各桁に 1 文字ずつ使用して文字列として格納されることを意味する。M では、小数点と、負数に使用される '-' 記号はカウントされない(しかし、これらのためのスペースは確保される)。D が 0 の場合、値は小数点も小数部も持たない。DECIMAL 値の最大範囲は、DOUBLE と同じだが、個々の DECIMAL カラムの実際の範囲は、M と D の値によって制限される。UNSIGNED を指定した場合、負数は使用できない。
D を省略した場合、デフォルトは 0。M を省略した場合、デフォルトは 10
MySQL バージョン 3.23 より前のバージョンでは、M 引数に、符号と小数点に必要なスペースを含める必要がある

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

と解説されていますが、読解力が無いため今イチ理解を得ません(^^;
どなたか解説頂けませんでしょうか?

A 回答 (1件)

お使いのMYSQLのバージョンを記載されると説明しやすいと思います。


4.1と5.1のリファレンスマニュアルでは以下のリンクのように説明されて
います。
http://dev.mysql.com/doc/refman/4.1/ja/numeric-t …
http://dev.mysql.com/doc/refman/5.1/ja/precision …

DECLMAL型の取り扱いは結構変遷があるみたいですが、私が使っている
Mysql5.0.51aでは、DECIMAL(M,D)とあった場合は、全体の桁数(少数
点含まず)をMで指定し、小数点以下の桁数をDで指定します。
Mの最大値は65、Dの最大値は30です。かつM>=Dである必要があります。
FLOAT、DOUBLEと違いDECIMALは浮動小数点誤差を生じません。
後、どこが分からないか補足いただけると、説明しやすいと思うのですが
    • good
    • 0
この回答へのお礼

nora1962さん、回答ありがとうございます。

>後、どこが分からないか補足いただけると、説明しやすいと思うのですが

その通りですよね。
まさに

>Mysql5.0.51aでは、DECIMAL(M,D)とあった場合は、全体の桁数(少数
>点含まず)をMで指定し、小数点以下の桁数をDで指定します。
>Mの最大値は65、Dの最大値は30です。かつM>=Dである必要がありま
>す。

ここが知りたかったのです。

CREATE文を発行する時にいろいろエラーで怒られていたもので
表記上留意しなければならない点について知りたかったのです。

お礼日時:2008/03/31 10:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!