JavaScriptで、小数点以下の指定した桁数までゼロ埋めする
小数点以下の桁を揃えようと思ったが、
JavaScriptにはsprintfのようなフォーマット関数が無いので、
小数点以下の指定した桁数までゼロ埋めする関数を自分で作ってみた。
せっかくなのでブログに書いておく。
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;
}
小数点を探すところを正規表現にすると、もっとスッキリしそうな気がする。
* 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;
}
スポンサーサイト