数値を丸める・桁をそろえる:JavaScript

桁数を指定できないものでも、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のが大きい数です。

絶対値を丸めて符号をつける、ではないのです。

タイトルとURLをコピーしました