質問 |
||
| 質問者:googoohoge | DECIMALの範囲について | |
|---|---|---|
困り度:
|
例えば、以下のページ 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 引数に、符号と小数点に必要なスペースを含める必要がある @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ と解説されていますが、読解力が無いため今イチ理解を得ません(^^; どなたか解説頂けませんでしょうか? |
|
質問投稿日時:08/03/28 15:55 質問番号:3902223 |
||
回答良回答20pt |
|
| 回答者:nora1962 | お使いのMYSQLのバージョンを記載されると説明しやすいと思います。 4.1と5.1のリファレンスマニュアルでは以下のリンクのように説明されて います。 http://dev.mysql.com/doc/refman/4.1/ja/numeric-types.html http://dev.mysql.com/doc/refman/5.1/ja/precision-math-decimal-chang... DECLMAL型の取り扱いは結構変遷があるみたいですが、私が使っている Mysql5.0.51aでは、DECIMAL(M,D)とあった場合は、全体の桁数(少数 点含まず)をMで指定し、小数点以下の桁数をDで指定します。 Mの最大値は65、Dの最大値は30です。かつM>=Dである必要があります。 FLOAT、DOUBLEと違いDECIMALは浮動小数点誤差を生じません。 後、どこが分からないか補足いただけると、説明しやすいと思うのですが |
|---|---|
| 種類:補足要求 どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/03/28 17:28 回答番号:No.1 |
|
| この回答へのお礼 | nora1962さん、回答ありがとうございます。 >後、どこが分からないか補足いただけると、説明しやすいと思うのですが その通りですよね。 まさに >Mysql5.0.51aでは、DECIMAL(M,D)とあった場合は、全体の桁数(少数 >点含まず)をMで指定し、小数点以下の桁数をDで指定します。 >Mの最大値は65、Dの最大値は30です。かつM>=Dである必要がありま >す。 ここが知りたかったのです。 CREATE文を発行する時にいろいろエラーで怒られていたもので 表記上留意しなければならない点について知りたかったのです。 |