あぼかどブログ > Web > PHP > phpメモ:数値に前ゼロを付加する時の不具合対応

phpメモ:数値に前ゼロを付加する時の不具合対応

phpで数値が意図する桁数に満たない場合は、前ゼロを付加する。
10桁以上の整数のオーバーフロー(?)で値が変わってしまう場合の前ゼロ付加方法。

phpメモ:$in_numが12桁に満たない場合は前ゼロを付加

$in_num = "9876543210";
$out_num = str_pad(trim(mb_convert_kana($in_num, 's')), 12, '0', STR_PAD_LEFT);
echo $out_num;

【結果】009876543210

※str_padの第3引数(上記の場合は'0')指定なしの場合は、デフォルトの空白になる。
※前ゼロを付加する場合は、第4引数に「STR_PAD_LEFT」を指定、なければ後ろに不可される。
※ついでに$in_numの全角スペースをmb_convert_kanaで半角スペースに変換し、trimで削除する。

phpメモ:$in_numが9桁未満の場合は以下でもOK

$in_num = "12345";
$in_num = sprintf('%08d', $in_num);
echo $out_num;

【結果】00012345

※'%08d'は8桁。

phpメモ:$in_num10桁で前ゼロを付加した場合の不具合

$in_num = "9876543210";
$in_num = sprintf('%012d', $in_num);
echo $out_num;

【結果】002147483647

※'%012d'は12桁。

【前後の記事】
«
 
»
 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です