fc2ブログ

JavaScriptで、小数点以下の指定した桁数までゼロ埋めする

小数点以下の桁を揃えようと思ったが、
JavaScriptにはsprintfのようなフォーマット関数が無いので、
小数点以下の指定した桁数までゼロ埋めする関数を自分で作ってみた。
せっかくなのでブログに書いておく。
/* 小数点以下の指定した桁数までゼロ埋め
 * inNum ゼロ埋め対象の数
 * digit 小数点以下何桁までゼロ埋めするか
 * return ゼロ埋めした結果の文字列
 */
var formNumber = function(inNum,digit){
  if (isNaN(inNum) || isNaN(digit) || digit<0){
    return false;
  }
  digit = Math.floor(digit);
  var workstr = String(inNum);  // ワーク文字列
  var dpPlc = workstr.indexOf(".");  // 小数点の位置
  var zeroCnt = 0;  // 付加するゼロの個数
  if(dpPlc < 0){
    workstr += ".";
    zeroCnt = digit;
  }else{
    var digCnt = (workstr.length - 1) - dpPlc;  // 小数点以下の桁数
    if(digCnt < digit){
      zeroCnt = digit - digCnt;
    }
  }
  var zeroStr = new Array(zeroCnt+1).join("0");  // 埋める分の数だけゼロを連結した文字列
  workstr += zeroStr;
  return workstr;
}
小数点を探すところを正規表現にすると、もっとスッキリしそうな気がする。
スポンサーサイト



コメント

toFixed

これじゃだめ?

n = 12
n.toFixed( 2 ) == "12.00"

Re: toFixed

なるほど。Number.toFixed()を使えば一瞬ですね。
IE6でも動きますし、Stringを返すんですね。
ありがとうございます。

コメントの投稿

非公開コメント

プロフィール

himax64

Author: 南西
30代後半の無職です。
就活もせずダラダラ生きてます。
作ったもの

最新記事
人気記事
検索フォーム
カテゴリ
月別アーカイブ
最新コメント
最新トラックバック
RSSリンクの表示
QRコード
QRコード
カウンター