为了使它更通用...我通过这样做改变了Javascript中Number对象的原型
Number.prototype.ceil = function() { return Math.ceil(this); };
现在2.3.ceil()返回3并且2.ceil()抛出异常。 但是,如果我做b = 2然后做b.ceil(),它工作正常!!所以,基本上它仍然是javascript的问题。
答案 0 :(得分:3)
方法是Math.ceil
,它不是实例方法。
var b = 2;
console.log(Math.ceil(b));
b = 2.3;
console.log(Math.ceil(b));
看起来创建一个可以执行此操作的原型方法是微不足道的:
Number.prototype.ceil = function() {
return Math.ceil(this);
};
console.log(2.3.ceil());
它看起来像JavaScript保留数字文字中的第一个小数,用于向数字添加小数。这是一种语言功能。要解决这个问题,您需要两位小数:
2.ceil(); // does not work
2.3.ceil(); // does work
2..ceil(); // does work
答案 1 :(得分:0)
2.ceil()
看起来像是语法错误。 (解释器可能会对点混淆 - 它会尝试将点解释为数字的一部分。)
查看2..ceil()
(请注意双点)或(2).ceil()
是否适合您。
答案 2 :(得分:0)
你不应该做任何这些,除非你有某种框架或原型.ceil()作为一种方法的原型,在这种情况下,它可能是原型作为字符串的方法。 IOW .ceil()不是原生的javascript方法。
Javascript的原生“round up”方法.ceil()通过使用像
这样的Math对象来工作alert(Math.ceil(2.3));