2011-08-30

perlでファイルなどのデータサイズに単位をつけて丸めて表示する

次のようなサブルーチンを
nice_size(<丸めたい値>,<少数以下の桁数>)
な感じで呼び出せばOKヾ(*・∀・)ノ"

sub nice_size {
	my $fs = $_[0];	# 対象の数値
	my $dp = $_[1];	# 少数以下の桁数
	my @units = ('bytes','kB','MB','GB','TB','PB','EB','ZB','YB');
	my $u = 0;
	$dp = ($dp > 0) ? 10**$dp : 1;
	while($fs > 1024){
		$fs /= 1024;
		$u++;
	}
	if($units[$u]){ return (int($fs*$dp)/$dp)." ".$units[$u]; } else{ return int($fs); }
}

0 件のコメント:

コメントを投稿