LoginSignup
85
72

More than 5 years have passed since last update.

茨城県と栃木県のデータがおかしいときに確かめること

Last updated at Posted at 2014-10-21

都道府県別のデータを扱う機会ってありますよね.
私もとあるサービスの都道府県別データを解析しておりました.

 $ wc -l location_data/location-*.csv | sort | head
       0 location_data/location-8.csv
       0 location_data/location-9.csv
      12 location_data/location-38.csv
      14 location_data/location-36.csv
      20 location_data/location-31.csv
      26 location_data/location-32.csv
      29 location_data/location-16.csv
      33 location_data/location-18.csv
      48 location_data/location-39.csv
      52 location_data/location-35.csv

あれ,8と9がおかしい.いくらなんでもゼロってことはないだろう...
ちなみに8と9というのは茨城県と栃木県の都道府県コード(JIS規格)です.

なにかがおかしいなぁ.

parseInt("08") と parseInt("09") は "0" になる!!!!

いろいろ調べてたらたどり着きました.

javascript parseInt() 08 09 ではまる。

嘘だろと思って,近くにあった mongo shell でたしかめました.

> parseInt("09")
0
> parseInt("08")
0
> parseInt("07")
7

本当でした.

> parseInt("09", 10)
9
> parseInt("08", 10)
8
> parseInt("07", 10)
7

第二引数で10進数だよ〜と指定すればよいそうです.幸いDBには "08", "09" 形式で格納されていたので大事に至らなそうです.

これがDBに格納するときに "0" になっていたらガクブルです.

茨城県と栃木県のデータがおかしいときは,parseInt を思い出しましょう.
そして,テストデータには茨城県と栃木県を含めましょう.

85
72
12

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
85
72