jsのparseFloat()でいろいろ変換
2013/04/18
「true / false」を数値に変換して渡したいってのがあって…ついでにいろいろ確認したくてparseFloat()にいろいろと値をいれてみた。
数字・数値は基本、数値。カンマ(,)がはいるとカンマ(,)まで。
数字で、カンマ(,)以外の文字が入ってる場合もその文字まで。
「6,420」→「6」
「3f2」→「3」
「3f2」→「3」
で、最初に「0」が入ってる場合は特殊。
文字として「0」が最初にある場合はただの数字。
数値として「0」が最初にある場合は8進数扱いっぽい。
「0123」を数値として「parseFloat()」にいれると「0123(8進数)」→「83(10進数)」
「0123」を文字として「parseFloat()」にいれると「0123」→「123」
「0123」を文字として「parseFloat()」にいれると「0123」→「123」
「true」を「1」、「false」を「0」に変換したい
JSONにする際に「true / false」を数値に変換したかった。
「isNaN()」で調べると「true / false」は数値扱い。
だからといって、そのまま「parseFloat()」にいれると「NaN」が返ってくる。
if文でどうこうってのは面倒だし…。
「true / false」は数値ってことは「四則演算が使えるんじゃないの?」ということで下記のようにした。
var flag = true;
var result = parseFloat( 0 + flag );
var result = parseFloat( 0 + flag );
▼まとめ
Jsの数値関連