int関数によるゼロサプレス

頭にゼロを付けて桁を揃えたデータ("001"とか)をゼロサプレスして、頭のゼロを取りたい時にperlではint関数で実現できます。本来は小数点付きの数値から、整数値を取り出す関数ですが、頭に付いている余計なゼロは削除してくれるのです。

my $number = '001';

print int($number);

結果は"1"と表示されます。

int関数は整数値を得るための関数なので、与えた文字列に数字以外が含まれていると警告になるので、その点は留意が必要です。

use strict;
use warnings;

my $number = '001aaa';

print int($number);

結果は以下の通り表示されます。

Argument "001aaa" isn't numeric in int at xxx.pl line xx.
1

警告は出ましたが、一応1という数字は取得できたよ、という事です。

入力の文字列が全て数字である事が保証できない時は事前に正規表現を使ってチェックした方が良いでしょう。


→Perl To The Peopleのインデックスページへ戻る

トラックバックURL

このエントリーのトラックバックURL:
http://ash.roova.jp/mt/mt-tb.cgi/46

コメントする