• 締切済み

打率などのデータ型について

打率などを表示させたいとき、 .360 などはデータ型は何を定義すればよいでしょうか? ご教授いただける方宜しくお願いします。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

PHPと併用が前提であれば、MySQLに登録する際は数値として 登録する方がよいでしょう。 hit,numberをint、averageをdoubleとしておき INSERT INTO `test`.`baseball` (hit ,number ,average) VALUES (1, 3, COALESCE(hit/number,0)); なんてしておけばよいでしょう。 かりに0打数0安打の場合でもaverageは0になります 表示はphpになりますので、そちらでsprintfなどで処理してください

  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.2

回答#1の方が回答されている通り、DECIMAL(M,D)を使用します。 (M,D)は「値は合計でM桁まで格納でき、そのうちのD桁は小数点以下である」という意味です。 ただ運用を考えると、「打数」と「安打数」のデータがあるならばそちらをDBに格納しておき、「打率」は「打数」と「安打数」のデータを取得してプログラム中で計算・表示を行う方が一般的です。 おそらく、".360"といったデータのデータ型のみについての質問だと思いますが・・・。

参考URL:
http://dev.mysql.com/doc/refman/5.1/ja/numeric-types.html
gosanta21
質問者

お礼

x_jouet_x 詳しいご回答ありがとうございました。 >ただ運用を考えると、「打数」と「安打数」のデータがあるならばそちらをDBに格納しておき、「打率」は「打数」と「安打数」のデータを取得してプログラム中で計算・表示を行う方が一般的です。 おっしゃるとおりPHPで計算してDBに格納→WEB表示を行う予定なんですが、この場合、MYSQL側のテーブル定義で打率、DECIMAL(4,3)Tと定義しなくてもいいのでしょうか? 追加の質問、且つ素人発言で申し訳ございませんがお時間のあるときにでも・・・宜しくお願いします。

回答No.1

decimalを使いましょう。 dec(4,3)で、0.333といった値を保持できます。

gosanta21
質問者

お礼

ありがとうございました。 勉強になりました。

関連するQ&A