write ahead log

ロールフォワード用

javascriptで小数の切り捨て・切り上げ・四捨五入を桁数指定で行いたい

ちょこっと使いたい時があるので.

大きな桁数などで精度の問題があるのは承知の上.

雑に書いた割にテストしてないからバグってるかも.

   /**
    * 有効桁数を指定して小数点切り捨て処理を行う
    *   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;
   }