Javascript: Round by 100

Javascript: Round by 100

本文关键字:by Round Javascript      更新时间:2023-09-26

我正在尝试将一个数字四舍五入到100。

示例:

1340 should become 1400
1301 should become 1400

298 should become 300
200 should stay   200

我知道Math.round,但它没有达到100。

我该怎么做?

原始答案

使用Math.ceil功能,例如:

var result = 100 * Math.ceil(value / 100);

通用版本

这个函数可以概括如下:

Number.prototype.roundToNearest = function (multiple, roundingFunction) {
    // Use normal rounding by default
    roundingFunction = roundingFunction || Math.round;
    return roundingFunction(this / multiple) * multiple;
}

然后您可以按如下方式使用此功能:

var value1 = 8.5;
var value2 = 0.1;
console.log(value1.roundToNearest(5));              // Returns 10
console.log(value1.roundToNearest(5, Math.floor));  // Returns 5
console.log(value2.roundToNearest(2, Math.ceil));   // Returns 2

或者具有自定义舍入功能(如银行舍入):

var value1 = 2.5;
var value2 = 7.5;
var bankersRounding = function (value) {
    var intVal   = Math.floor(value);
    var floatVal = value % 1;
    if (floatVal !== 0.5) {
        return Math.round(value);
    } else {
        if (intVal % 2 == 0) {
            return intVal;
        } else {
            return intVal + 1;
        }
    }
}
console.log(value1.roundToNearest(5, bankersRounding)); // Returns 0
console.log(value2.roundToNearest(5, bankersRounding)); // Returns 10

这里提供了一个运行代码的示例。

试试这个。。。

function roundUp(value) {
    return (~~((value + 99) / 100) * 100);
}

这将四舍五入到下一个一百——101将返回200。

jsFiddle示例-http://jsfiddle.net/johncmolyneux/r8ryd/

打开控制台查看结果。