づやの夏休み
づやの夏休み
2011.06.07

MySQLでdecimalを使うときの注意点

まっちー

たいした話ではないんですが、僕自身がちょいと勘違いをしていたことがあったので、備忘録的なメモってことで……。

MySQLで少数を扱うようなとき、型にdecimalを使うことがあるかと思います。

decimalの場合、桁数を(M,D)の形で指定します。内訳は以下の通りです。

M…扱う少数の最大桁数

D…小数点以下の桁数

例えば、(6,3)という桁数を指定したら、全体で6桁、小数点以下は3桁、という解釈になります。123.456みたいな数値を扱えることになりますね。

僕はそこをちょっと勘違いしてて、上記でいうところのMっていうのは、小数点以上の桁数の指定だと思ってました。だから(6,3)って指定したら、123456.789みたいな数値を扱う状態になるのかなという認識でした。

先日、decimalの桁数を(3,3)で指定して、0~100のパーセンテージを持つカラムを作成したんですけど、どんなにデータを入れてもレコードの中が『0.999』にしかならなくて、おかしいなぁと思っていたんです。

原因は桁数の指定の間違いにありました。(6,3)に直したら解決しました。

もし、僕と同じ間違いをしている人がいたら、この記事が参考になれば幸いです。

ってか、一人くらいはいてほしいな……世界中でそんな勘違いをしたのが俺だけってのも、さびしいし恥ずかしいし……。

1