マネー報道 MoneyReport

マネーにまつわる報道を取り上げ、自分の切り口で切り取り、噛み砕いてお伝えします。

Webサービス「ロト予想.com」のTOPページを変更しました。ロト7の販売額とキャリーオーバー額がint型のMAXを超えてた(^-^;

スポンサーリンク
あとで読む

Webサービス「ロト予想.com」のTOPページを変更

今日は午前中にちょっと隙間時間が出来まして

「本業の仕事をするほどの時間は無いから、前に作りかけたWebサービスの手直しでもするか!」

と思い立ったが吉日という訳で、作ったまま放置していたWebサービス「ロト予想.com」をちょっと手直しする事に(^-^)v

ロト予想.com

このWebサービスのTOPページが雑に作ってそのままだったので気になっていたんですよね~。

以前のTOPページはこんな殺伐としたもの・・・(-_-;
f:id:MoneyReport:20190323125806p:plain

各Webサービスのページへのリンクを貼ってあるだけで、システムの説明とかも一切なし!!!

「アカン、あかんですよ!!!」

という訳でチャチャチャッと♪

リニューアル後のTOPページはこんな感じ!
f:id:MoneyReport:20190323125603p:plain
1ページにロト7、ロト6、ミニロトの最新の当選数字と当選結果を載せた上で、各リンクを付けておくようにしました!
自分でもロト6を毎週購入する様になって分かったのですが、当選結果ってきになるんですよね、まぁ当然ですが(^-^;

なので

「TOPページで全てのロト宝くじの当選数字と当選結果が見られたら、需要があるかな~♪」

と思いまして。
もしよろしければ、TOPページをブックマークなどして頂いて普段来るページとしてもらえると嬉しいです♪

ロト予想.comロト予想.com 

小バグ修正&ロト7の販売額が型の最大値を超えた!?

他にも見てみたら、ミニロトの当選結果がおかしくなっていて、DBのデータを直したり。

他にはロト7の販売実績額とキャリーオーバーの金額が一緒の数値になっていて

「なんじゃこりゃ(?_?)」

となってチェックしたら、第306回 2019年03月01日のキャリーオーバー金額が「3,531,756,965円」とかになっていました。
桁が多きすぎてよく分からない感じですが、これって
35億円
となっています(^o^;

「これはもしやint型のMAX値を超えてるんじゃ・・・」

と思い立ってチェックしたら金額がどちらも「2147483647」の数値になっていました。
MySQLのint型のサイズを調べてみると・・・

intのサイズは4バイトで-2147483647〜2147483647までしか指定出来ません。
サイズは以下のサイトが覚えやすい。インドと中国の人口(25億人)が登録するとサービスが落ちますw


ちなみにこれ以上のサイズの数値を指定したい場合は、bigint型を使います。
UnixTimestampは11桁以上になるので、bigint型なら保存できます。


MySQLのint(11)って何? - Qiita

これですね!
金額が「2147483647円」となっていましたが、まさにintの最大値「2147483647」に丸められて格納されていました(^-^;

要はロト7の販売額やキャリーオーバー額が21.5億円とかを超えてしまう時は、int最大値までに統一されてしまって正しく表示されないという(^o^;

Webサービス作った頃は、こんなにもロト7が売れてなかったり、キャリーオーバーが発生していなかったので気付きませんでした。

対策も先程の引用先に載っていたとおりで、int型をやめてbigint型にすれば良いとのこと。
DBのTABLEを作り直してデータを修正し、インポートし直せば・・・

f:id:MoneyReport:20190323131558p:plain

21.5億円を超えた、26.8億円や22.4億円も正しく表示されました!!!

これにてバグ修正終わり!