桁数を指定できないものでも、10をかけてから10で割る、100で割ってから100をかける、などで丸める桁を調整できます。
四捨五入
Math.roundは、0.5以上で大きい整数に0.5以下で小さい整数にします。負の数注意。1.5は2になりますが、-1.5は−1です。
四捨五入(小数点)
var result=Math.round(value);
少数点以下n桁で四捨五入
var result=value.toFixed(n);
0-20(デフォルトは0)を指定。
数値ではなく文字列になるので、その後計算するときは注意。指定桁分、ゼロ埋めします。
桁数(n)で四捨五入
小数点→0 小数点第2位→2 10の位→-1
var result=Math.round( value * Math.pow( 10, n ) ) / Math.pow( 10, n )
小数第一位でvar result=Math.round(value*10)/10;
100の位でvar result=Math.round(value/100)*100;
整数部含むn桁までを取得(四捨五入)
var result =value.toPrecision(n));1234.5678(5桁指定)→1234.5
1234.5678(2桁指定)→1.2e+3(=1200)整数部分は指数表記。
切り上げ
その数以上の最小の整数にします。負の数注意。1.5は2になりますが、-1.5は−1です。
切り上げ(小数点)var result=Math.ceil(value);
小数第一位でvar result=Math.ceil(value*10)/10;
100の位でvar result=Math.ceil(value/100)*100;
切り下げ
その数以下の最大の整数にします。
負の値のときは注意。切り捨てではない。1.5は1になりますが、-1.5は-2です。
切り下げ(小数点)var result=Math.floor(value);
小数第一位でvar result=Math.floor(value*10)/10;
100の位でvar result=Math.floor(value/100)*100;
切り捨て
小数点から後を問答無用で捨てるので、正負を気にしません。
小数点以下切り捨てvar result=parseInt(value);
小数第一位で
var result=parseInt(value*10)/10;
3桁毎にカンマ区切り
3桁ごとにカンマ区切り
var result =String(value).replace( /(\d)(?=(\d\d\d)+(?!\d))/g, ‘$1,’);
↑小数点は妙なことに。→1,264.8,678
3桁ごとにカンマ区切り(小数対応)
varresult=AddComma(value);
function AddComma(num) {
var numParts = num.toString().split('.');
numParts[0] = Number(numParts[0]).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
return numParts.join('.');
}
カンマを消す
var result =value.replace( /,/g , "" );
ゼロ埋め(ゼロパディング)
右に0埋め(小数点以下n桁)
varresult=value.toFixed(n);
数値ではなく文字列になるので、その後計算するときは注意。指定桁分、足りなければ0埋めします。
左に0埋め(n桁)var result=zeroPadding(value , n);
function zeroPadding(num, length){
return ( Array(length).join(‘0’) + num ).slice( –length );
}値がn桁を超えていた場合、桁が失われるので注意。
不要なゼロを消す(ゼロサプレス)
先頭・末尾の0を削除var result=parseFloat(value.toString());
var result=value*1;
先頭の0を削除(末尾の0はそのまま)var result =value.replace( /^0+([0-9]+)/, “$1” );
桁数をチェック
桁数(文字列に変換して文字数を数える)var digits=String(value).length
小数点以下の桁数var array=value.toString().split(‘.’);
if(array[1]){var digits=array[1].length;}else{var digits=0;}
負の数を丸めるときは
Math.floor、Math.ceil、Math.roundでは、負の値のときの結果がおそらく想定と違ってるので注意。
Math.ceil( 3.5 )→ 4
Math.ceil( -3.5 )→ −3
Math.floor( 3.5 )→ 3
Math.floor( -3.5 )→ −4
Math.round( 3.5 )→ 4
Math.round( -3.1 )→ −3
Math.round( -3.5 )→ −3
Math.round( -3.6 )→ −4
切り上げ(0.5以上)で大きい整数に、切り下げ(0.5以下)で小さい整数にします。
四捨五入で、1.5は2になりますが、-1.5は−1です。−2より−1のが大きい数です。
絶対値を丸めて符号をつける、ではないのです。