ひでっぷの技術メモ

はてなダイアリーから移行しました

mysqlccのわな?

もう2年近く前にシステム納品したお客さんから電話。
そこは販売管理システムを入れてるんだけど

「単価で少数入れれるようにしてもらってたと思うんですけど、更新した後小数部が消えてしまいます・・・。」

む?
うちにあるソースやってみると・・・。


単価10.5円
個数10個
合計105円

ふむふむ。

DBに保存して更新後


単価11.0円
個数10個
合計110円

うっ(゚Д゚;)

ソースの中身を見たがすべて単価はdouble型で定義している。
アクセサメソッドもdouble型(当然)

DBもdouble型で定義している・・・・いったい・・・。
ん?

DBの定義をよく見ると・・・・

double(11,0)

double(M,D)
M は表示幅で、D は小数部桁数。

これだと、固定少数の上に少数部桁数が0桁。doubleにした意味がない・・・orz

こんな設計した覚えないんだけどなあ・・・って思い返していくと・・・。

mysqlをビジュアル的に操作するソフトにmysqlccがあります。
(今はバージョンアップしてmysqlAdministratorになりましたが)
これで簡単にテーブルを作成できるのですが、
mysqlccで作成したdouble型はデフォルトでdouble(11,0)となるみたい。

ちなみに引数なしならば浮動少数になるようです。
(試してみたらfloatも同じでした)

mysqlccのわな?