2013年3月11日月曜日

数値を0フィルしてみる

表示するときに0フィルしたいときってありますよね。
ファイル名自動生成したり、大きい数値を、カンマ区切りで出したいときとか。


int(System.privateMemory / 1000000) + "," + ("000" + int((System.privateMemory % 1000000) / 1000).toString()).substr(-3) + "," + ("000" + (System.privateMemory % 1000).toString()).substr(-3)



と、数値に000を付け足して、substrの負の数値で切り取ることで0フィルぽい事ができます^^
上記は、プライベートメモリの使用量をカンマ区切りで出す時につかいました。

もっと一般化すると、

function zerofill(value:int, keta:int):String
{
  ("000000000000000" + value.toString()).substr(keta*(-1))
}
とすれば、ゼロフィルになります。 とかやってたら、もっと簡単な方法があった。。。。

http://www.project-nya.jp/modules/weblog/details.php?blog_id=1785

一応引用させて頂いておきます。


var number:Number = 3000000000000000000;
var digit:uint = 3;
var pattern:RegExp = new RegExp("([0-9]+?)(?=(?:[0-9]{" + digit + "})+$)", "g");

var result:String = String(number).replace(pattern, "$1,");
しかしまあ、普通に使うあれなので、標準で関数にあっても良いのに・・・

0 件のコメント:

コメントを投稿