MYSQLで小数点を使ってみた
プログラム制作で扱う数字は、たいてい「整数」です。
計算する要素がほとんどなく、数値の目的は数を数えることだけだったりするためです。
そんななか、プログラムで小数点を扱う事例がありました。
数値計算目的のアプリ制作であったためです。
PHPでは、小数点は宣言しなくても普通に使えます。
ただ、MYSQLではintなどの数値型では小数点は使えません。
数値データを保存する必要があったため、MYSQLで小数点を保存しなければいけませんでした。
どうやればMYSQLで小数点を保存できるのか?
いつものごとくググって調べました。
int型の項目に小数を入れてみたらこうなりました
まずはint型の項目に小数を入れてみたところ、以下のようになりました。
小数を無理やり入れてみると、こうなりました。
案の定ですが、整数にむりやり変換されました。
int型では小数は無理のようです。
MYSQLで小数を使うには専用の型を使用する
MYSQLで小数を使うには、専用の型があります。
それがdecimal です。
次のようにやってみたところ、MYSQLで小数が使えました。
decimal型に小数を入れると次のようになりました。
ここで疑問:decimalは小数点第何位までいれられるのか?
MYSQLで少数が使えることがわかりました。
でも小数点は第何位までつかえるのか疑問に思いました。
そこで調べてみました。
小数点はほぼ無制限に使用できます。
decimal型の使い方は桁数と、小数点の桁数を指定します。
例えば、小数点の桁数を増やす場合は、次のように宣言します。
decimalは事前に桁数を宣言する必要がありますが、小数点の桁数を流動的に変更することができます。
用途に合わせて宣言します。
小数点が何桁必要かは、打ち合わせ等で何桁必要かで判断します。
decimal型を使用する場合は何桁必要が綿密に検討することが大事です
decimal型は使用する桁数を事前に設定するため、足りなくなった場合の再修正に手間がかかります。
開発段階であれば、まだ桁数の変更をしても影響はすくないですが、稼働中の場合は思いのほか大変です。
整数は何桁必要ななのか?
小数点は何桁必要なのか?
じっくり検討して設計することが大事です。
かくいう私も、プログラム開発中に小数の桁数が足りないことに気づき何回かdecimal型の再設定を行いました。
何事もじっくり考えることが肝要です。