0

只是想知道是否有一种方法可以添加自定义 jQuery 方法或类似方法以确保所有计算都四舍五入到最接近的整数?例如用于计算宽度等。

谢谢!

4

3 回答 3

2

不,那是不可能的。

您可以做的最接近的事情是更改在jQuery方法中执行计算的方式。

您无法更改语言本身执行算术运算的方式。

JavaScript 语言中的运算符不能被覆盖。

例如,这是您将如何覆盖 jQuery 的.width方法(不建议将其用于生产代码!)

$.fn.oldwidth = $.fn.width;
$.fn.width = function (elem) {
    if(elem == null){ // no param, getter
        return $.fn.oldwidth.call(this);
    }
    if (typeof elem === "string") { // 12px for example
        var numPart = parseInt(elem); //get just the 12
        var unitPart = elem.match(/[a-zA-Z]/g).join(""); //get the number part
        return $.fn.oldwidth.call(this,Math.floor(numPart) + unitPart);
        }
        return $.fn.oldwidth.call(this,Math.floor(elem));
    }

工作演示

这会做:

$("#some").width("5.6em");
alert($("#some").width()); // Alerts 80 with the above code, 90 without.
于 2013-05-24T12:50:36.347 回答
0

我不知道您要进行哪种计算,但是如果是简单的重复操作,您可以执行一个处理操作并返回舍入结果的函数...

喜欢

function calculateSomething(operation){
// ???
return floor(result);
}
于 2013-05-24T12:57:54.363 回答
0

如果您将所有计算放在一个特定的类中,您可以将它们全局四舍五入

var Arithmetics = //class of all calc's

for(each element in arithmetics){
    element = Math.round(element)
}
于 2013-05-24T12:58:21.360 回答