美文网首页
小数舍入

小数舍入

作者: _____西班木有蛀牙 | 来源:发表于2020-04-23 17:46 被阅读0次

Math.round() 函数返回一个数字四舍五入后最接近的整数。

// 闭包
(function(){

  /**
   * Decimal adjustment of a number.
   *
   * @param {String}  type  The type of adjustment.
   * @param {Number}  value The number.
   * @param {Integer} exp   The exponent (the 10 logarithm of the adjustment base).
   * @returns {Number}      The adjusted value.
   */
  function decimalAdjust(type, value, exp) {
    // If the exp is undefined or zero...
    if (typeof exp === 'undefined' || +exp === 0) {
      return Math[type](value);
    }
    value = +value;
    exp = +exp;
    // If the value is not a number or the exp is not an integer...
    if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {
      return NaN;
    }
    // Shift
    value = value.toString().split('e');
    value = Math[type](+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp)));
    // Shift back
    value = value.toString().split('e');
    return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp));
  }

  // Decimal round
  if (!Math.round10) {
    Math.round10 = function(value, exp) {
      return decimalAdjust('round', value, exp);
    };
  }
  // Decimal floor
  if (!Math.floor10) {
    Math.floor10 = function(value, exp) {
      return decimalAdjust('floor', value, exp);
    };
  }
  // Decimal ceil
  if (!Math.ceil10) {
    Math.ceil10 = function(value, exp) {
      return decimalAdjust('ceil', value, exp);
    };
  }

})();

// Round
Math.round10(55.55, -1); // 55.6
Math.round10(55.549, -1); // 55.5
Math.round10(55, 1); // 60
Math.round10(54.9, 1); // 50
Math.round10(-55.55, -1); // -55.5
Math.round10(-55.551, -1); // -55.6
Math.round10(-55, 1); // -50
Math.round10(-55.1, 1); // -60
Math.round10(1.005, -2); // 1.01 -- compare this with Math.round(1.005*100)/100 above
// Floor
Math.floor10(55.59, -1); // 55.5
Math.floor10(59, 1); // 50
Math.floor10(-55.51, -1); // -55.6
Math.floor10(-51, 1); // -60
// Ceil
Math.ceil10(55.51, -1); // 55.6
Math.ceil10(51, 1); // 60
Math.ceil10(-55.59, -1); // -55.5
Math.ceil10(-59, 1); // -50

or

function round(number, precision) {
    return Math.round(+number + 'e' + precision) / Math.pow(10, precision);
    //same as:
    //return Number(Math.round(+number + 'e' + precision) + 'e-' + precision);
}

round(1.005, 2);    //1.01

相关文章

  • 小数舍入

    Math.round() 函数返回一个数字四舍五入后最接近的整数。 or

  • Bigdecimal 8种舍入模式演示以及说明

    Bigdecimal 8种舍入模式演示 因为我总是对bigdecimal的舍入模式有疑问,所以干脆观察小数的舍入结...

  • 2021-05-12

    浮点数小数的舍入问题,非中间值时,舍入靠近的值当该值为有效位的中间值时偶数舍入.例子: 以二进制编码的方式保留小数...

  • Swift中Double类型数据的Rounded函数

    Swift中Double类型数据有个Rounded函数,用于对小数进行舍入操作,舍入规则是可以自定义的:

  • Kotlin BigDecimal 精确计算

    完整工具类 setScale 方法用于格式化小数点 其它计算方式说明 ROUND_UP舍入远离零的舍入模式。在丢弃...

  • c#_类型转换

    Math.Round这个函数的解释是将值按指定的小数位数舍入,并不就是四舍五入。这种舍入有时称为就近舍入或四舍六入...

  • 380,BigDecimal的好处,可以返回Int BigDec

    setScale 方法用于格式化小数点 其它计算方式说明 1.ROUND_UP舍入远离零的舍入模式。在丢弃非零部分...

  • 引用对象-Math对象

    1.min()和max()方法 用于确定一组数值中的最小值和最大值 2.舍入方法(小数值舍入为整数的方法) Mat...

  • BigDecimal

    使用BigDecimal 做小数点精度计算 [BigDecimal.ROUND_UP]:全部进1;远离0的方向舍入...

  • js Math函数

    Math对象包含的属性大部分是数学计算中可能会用倒的一些特殊值: 向上舍入小数点,它将数值向上舍入为最接近的整数M...

网友评论

      本文标题:小数舍入

      本文链接:https://www.haomeiwen.com/subject/npoaihtx.html