Edited at

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

More than 3 years have passed since last update.

都道府県別のデータを扱う機会ってありますよね.

私もとあるサービスの都道府県別データを解析しておりました.

 $ 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規格)です.

http://www.kenchikushikai.or.jp/touroku/documents/code-todoufuken.pdf

なにかがおかしいなぁ.


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 を思い出しましょう.

そして,テストデータには茨城県と栃木県を含めましょう.