JavaScript 数値演算 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(切り捨て・切り上げ・四捨五入 floor/ceil/round)
(切り捨て・切り上げ・四捨五入 floor/ceil/round)
525行: 525行:
  
 
四捨五入は伝統的な近似表現で、ある位に注目して4以下なら切り捨て、5以上なら切り上げるという手法です。このように切り捨て・切り上げ・四捨五入には、処理を行う数値と、どこの位で切り上げや切り捨て、四捨五入をするのかを指示する必要があるのですが、用意された関数にはどの位でそれを処理するかという指示はできなくて、すべて小数点第一位を対象に実施されます。したがって、一の位を対象にしたい場合は10分の1の値にしてから切り上げ・切り捨て・四捨五入を行い、その後10倍するというやり方になります。
 
四捨五入は伝統的な近似表現で、ある位に注目して4以下なら切り捨て、5以上なら切り上げるという手法です。このように切り捨て・切り上げ・四捨五入には、処理を行う数値と、どこの位で切り上げや切り捨て、四捨五入をするのかを指示する必要があるのですが、用意された関数にはどの位でそれを処理するかという指示はできなくて、すべて小数点第一位を対象に実施されます。したがって、一の位を対象にしたい場合は10分の1の値にしてから切り上げ・切り捨て・四捨五入を行い、その後10倍するというやり方になります。
 +
 +
 +
<syntaxhighlight lang="javascript" line start="1">
 +
<HTML>
 +
<HEAD>
 +
<TITLE>JavaScript floor,ceil,round</TITLE>
 +
</HEAD>
 +
<BODY>
 +
JavaScriptvz floor,ceil,round<br />
 +
<SCRIPT Language="JavaScript">
 +
<!--
 +
function funcFCR(strMode,nValue,nPower){
 +
    strMode = strMode.toLowerCase();
 +
    if(nPower <= -1){
 +
        fReturn = nValue * Math.pow(10,-1 * nPower - 1);
 +
    }
 +
    else{
 +
        fReturn = nValue * Math.pow(10,-1 * nPower);
 +
    }
 +
    switch(strMode){
 +
        case 'floor':
 +
        case 'f':
 +
            fReturn = Math.floor(fReturn);
 +
            break;
 +
        case 'ceil':
 +
        case 'c':
 +
            fReturn = Math.ceil(fReturn);
 +
            break;
 +
        case 'round':
 +
        case 'r':
 +
            fReturn = Math.round(fReturn);
 +
            break;
 +
        default:
 +
            return nValue;
 +
    }
 +
    if(nPower <= -1){
 +
        fReturn = fReturn * Math.pow(10,nPower + 1);
 +
    }
 +
    else{
 +
        fReturn = fReturn * Math.pow(10,nPower);
 +
    }
 +
    return fReturn;
 +
}
 +
var nValue1 = -7123;
 +
var nValue2 = 6655;
 +
var nValue3 = 21.4
 +
document.write("<BR />\n");
 +
document.write(nValue1, "<BR />\n");
 +
document.write(nValue1, "(十の位で切り捨て) = ", funcFCR('floor',nValue1,2), "<BR />\n");
 +
document.write(nValue1, "(一の位で切り捨て) = ", funcFCR('floor',nValue1,1), "<BR />\n");
 +
document.write(nValue1, "(小数点第一位で切り捨て) = ", funcFCR('floor',nValue1,0), "<BR />\n");
 +
document.write(nValue1, "(小数点第一位で切り捨て) = ", funcFCR('floor',nValue1,-1), "<BR />\n");
 +
document.write(nValue1, "(小数点第二位で切り捨て) = ", funcFCR('floor',nValue1,-2), "<BR />\n");
 +
 +
document.write("<BR />\n");
 +
document.write(nValue2, "<BR />\n");
 +
document.write(nValue2, "(十の位で切り捨て) = ", funcFCR('floor',nValue2,2), "<BR />\n");
 +
document.write(nValue2, "(一の位で切り捨て) = ", funcFCR('floor',nValue2,1), "<BR />\n");
 +
document.write(nValue2, "(小数点第一位で切り捨て) = ", funcFCR('floor',nValue2,0), "<BR />\n");
 +
document.write(nValue2, "(小数点第一位で切り捨て) = ", funcFCR('floor',nValue2,-1), "<BR />\n");
 +
document.write(nValue2, "(小数点第二位で切り捨て) = ", funcFCR('floor',nValue2,-2), "<BR />\n");
 +
 +
 +
document.write("<BR />\n");
 +
document.write(nValue3, "<BR />\n");
 +
document.write(nValue3, "(一の位で切り捨て) = ", funcFCR('floor',nValue3,1), "<BR />\n");
 +
document.write(nValue3, "(小数点第一位で切り捨て) = ", funcFCR('floor',nValue3,0), "<BR />\n");
 +
document.write(nValue3, "(小数点第一位で切り捨て) = ", funcFCR('floor',nValue3,-1), "<BR />\n");
 +
 +
document.write("<BR />\n");
 +
document.write(nValue1, "<BR />\n");
 +
document.write(nValue1, "(十の位で切り上げ) = ", funcFCR('ceil',nValue1,2), "<BR />\n");
 +
document.write(nValue1, "(一の位で切り上げ) = ", funcFCR('ceil',nValue1,1), "<BR />\n");
 +
document.write(nValue1, "(小数点第一位で切り上げ) = ", funcFCR('ceil',nValue1,0), "<BR />\n");
 +
document.write(nValue1, "(小数点第一位で切り上げ) = ", funcFCR('ceil',nValue1,-1), "<BR />\n");
 +
document.write(nValue1, "(小数点第二位で切り上げ) = ", funcFCR('ceil',nValue1,-2), "<BR />\n");
 +
 +
document.write("<BR />\n");
 +
document.write(nValue2, "<BR />\n");
 +
document.write(nValue2, "(十の位で切り上げ) = ", funcFCR('ceil',nValue2,2), "<BR />\n");
 +
document.write(nValue2, "(一の位で切り上げ) = ", funcFCR('ceil',nValue2,1), "<BR />\n");
 +
document.write(nValue2, "(小数点第一位で切り上げ) = ", funcFCR('ceil',nValue2,0), "<BR />\n");
 +
document.write(nValue2, "(小数点第一位で切り上げ) = ", funcFCR('ceil',nValue2,-1), "<BR />\n");
 +
document.write(nValue2, "(小数点第二位で切り上げ) = ", funcFCR('ceil',nValue2,-2), "<BR />\n");
 +
 +
 +
document.write("<BR />\n");
 +
document.write(nValue3, "<BR />\n");
 +
document.write(nValue3, "(一の位で切り上げ) = ", funcFCR('ceil',nValue3,1), "<BR />\n");
 +
document.write(nValue3, "(小数点第一位で切り上げ) = ", funcFCR('ceil',nValue3,0), "<BR />\n");
 +
document.write(nValue3, "(小数点第一位で切り上げ) = ", funcFCR('ceil',nValue3,-1), "<BR />\n");
 +
 +
document.write("<BR />\n");
 +
document.write(nValue1, "<BR />\n");
 +
document.write(nValue1, "(十の位で四捨五入) = ", funcFCR('round',nValue1,2), "<BR />\n");
 +
document.write(nValue1, "(一の位で四捨五入) = ", funcFCR('round',nValue1,1), "<BR />\n");
 +
document.write(nValue1, "(小数点第一位で四捨五入) = ", funcFCR('round',nValue1,0), "<BR />\n");
 +
document.write(nValue1, "(小数点第一位で四捨五入) = ", funcFCR('round',nValue1,-1), "<BR />\n");
 +
document.write(nValue1, "(小数点第二位で四捨五入) = ", funcFCR('round',nValue1,-2), "<BR />\n");
 +
 +
document.write("<BR />\n");
 +
document.write(nValue2, "<BR />\n");
 +
document.write(nValue2, "(十の位で四捨五入) = ", funcFCR('round',nValue2,2), "<BR />\n");
 +
document.write(nValue2, "(一の位で四捨五入) = ", funcFCR('round',nValue2,1), "<BR />\n");
 +
document.write(nValue2, "(小数点第一位で四捨五入) = ", funcFCR('round',nValue2,0), "<BR />\n");
 +
document.write(nValue2, "(小数点第一位で四捨五入) = ", funcFCR('round',nValue2,-1), "<BR />\n");
 +
document.write(nValue2, "(小数点第二位で四捨五入) = ", funcFCR('round',nValue2,-2), "<BR />\n");
 +
 +
 +
document.write("<BR />\n");
 +
document.write(nValue3, "<BR />\n");
 +
document.write(nValue3, "(一の位で四捨五入) = ", funcFCR('round',nValue3,1), "<BR />\n");
 +
document.write(nValue3, "(小数点第一位で四捨五入) = ", funcFCR('round',nValue3,0), "<BR />\n");
 +
document.write(nValue3, "(小数点第一位で四捨五入) = ", funcFCR('round',nValue3,-1), "<BR />\n");
 +
 +
-->
 +
</SCRIPT>
 +
 +
</BODY>
 +
</HTML>
 +
</syntaxhighlight>
 +
 +
[[Media:JavaScript Math Absolution.html|サンプル実行結果]]
  
 
=== 平方根・べき乗(累乗根) sqrt/pow ===
 
=== 平方根・べき乗(累乗根) sqrt/pow ===

2016年4月4日 (月) 00:00時点における版



個人用ツール
名前空間

変種
操作
案内
ツールボックス