鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

MySQLにGoogleMapsのマーカーデータを登録したらlat,lngの精度が落ちた

GoogleMapsのポイントデータをMySQLに保存したらlat,lngの精度が落ちた

Javascriptで設定している値は以下のとおり

lat=35.67997563594758
lng=139.76812541484833

これをMojoliciousで受けてMySQLに入れるのですが、

入れた後に、DBの中身を除いてみると

lat=35.68
lng=139.768

丸められていた。

CREATE  TABLE IF NOT EXISTS `gevent`.`Markers` (
`Id` INT NOT NULL AUTO_INCREMENT,
`Name` TEXT NOT NULL ,
`Address` TEXT NULL ,
`Detail` TEXT NULL ,
lat FLOAT NOT NULL,
lng FLOAT NOT NULL,
type INT NOT NULL,
`create_at` DATETIME NOT NULL,
INDEX `Index1` (`Id` ASC) ,
INDEX `Index2` (`type` ASC) )

float形で定義したのがまずかったのかな。 何型にしようかな。 DECIMAL(17,14)でしょうか?