DDLを記述してDBのスキーマを設定する際に、数値の型はどのように設定していますか?
小数点がつくとすれば、double型を使う人もおおいと思います。
が!double型を使うと、浮動小数点数として格納されます。それは以下のような問題を発生させる可能性があります。
よって、基本的にdecimal型を使うようにしましょう。
理由:double型を使用すると、検索結果が正しくなくなる事例があるため
以下に事例を書いておきます。
selectがうまくできない事例
column1をdouble型(double(6,2))とします。
ちなみにこれはMySQLの5.7.2より発生する事例です。
select * from table1 where column1 = '6.81'
columnに6.81が入っていたとしても、このselectのクエリはnullを返します!
しかし、decimalにかえると、問題なく値を返してくれます。
これはdouble型が浮動小数点となっているためにwhere句で指定している6.81と誤差が発生しているためと考えられます。
(シングルクォーテーションが入っているので型変換がおきており、DBの値とうまく合致していないのかと。)
これに対しdecimalは浮動小数点ではなく正確な値を格納してくれます。
このような事例は6.81以外にもあると思われます。よってあまり使わないほうが良いですね。decimalを使用しましょう。