ちょこっと使いたい時があるので.
大きな桁数などで精度の問題があるのは承知の上.
雑に書いた割にテストしてないからバグってるかも.
/** * 有効桁数を指定して小数点切り捨て処理を行う * val: 切り捨てる値 * digits: 丸めて残す桁数 */ function digitsFloor(val, digits) { const pow = Math.pow(10, digits); const powed = val * pow; const floored = Math.floor(powed); return floored / pow; } /** * 有効桁数を指定して小数点切り上げ処理を行う * val: 切り上げる値 * digits: 丸めて残す桁数 */ function digitsCeil(val, digits) { const pow = Math.pow(10, digits); const powed = val * pow; const ceiled = Math.ceil(powed); return ceiled / pow; } /** * 有効桁数を指定して小数点四捨五入処理を行う * val: 四捨五入する値 * digits: 丸めて残す桁数 */ function digitsRound(val, digits) { const pow = Math.pow(10, digits); const powed = val * pow; const rounded = Math.round(powed); return rounded / pow; }