2009年4月22日水曜日

 

【JavaScript】数値の桁を"0"で埋めて揃える

関数

足りない桁数を 0 で埋めた数値文字列を得る - AOK's JavaScript Library

function formatNum(keta, num) {
  var src = new String(num);
  var cnt = keta - src.length;
  if (cnt <= 0) return src;
  while (cnt-- > 0) src = "0" + src; return src;
}

プロトタイプ~その1

先頭を0で埋めて桁をそろえる(解説付き) - 素人がプログラミングを勉強するブログ

Number.prototype.fillZero=function(n){
  var zero=new Array(n).join('0');//0をn-1文字分つなげた文字列を作る。n==4だと'000'
  var str=zero+this;//zeroとthisをくっつけた文字列を作る。
  var result=str.substr(-n);//strの後ろから、n文字分の文字列を取ってくる。
  return result;
}

n」より大きい桁の数値が切り捨てられるので注意。

プロトタイプ~その2

"先頭を0で埋めて桁をそろえる" を考えてみた - Higé au lait

n」に足りない数値の桁数分の"0"を先頭に結合。(数値を配列として「unshift()」)

Number.prototype.fillZero = function(n) {
  var r = this.toString().split('');
  while(r.length <= n) {
    r.unshift('0');
  }
  return r.join('');
}

n」から数値の桁数の足りない分の"0"を配列にして、「join()」で文字列にして数値と結合。

Number.prototype.fillZero = function(n) {
  return Array((n+1) - this.toString().split('').length).join('0') + this;
}

小数や負の数では、そのまま返す条件。

if(this < 0 || (this - Math.floor(this) != 0)) return this;

ラベル:


コメント:
はじめまして。

AOK's JavaScript Libraryのサンプルの、

while (cnt-- > 0)

こちらの文の
ハイフン二つはどのような意味が有るのでしょうか?
 
コメントを投稿

登録 コメントの投稿 [Atom]



この投稿へのリンク:

リンクを作成



<< ホーム

This page is powered by Blogger. Isn't yours?

登録 投稿 [Atom]

Google