是Math.ceil()& IE8支持Math.round()吗?

时间:2011-03-23 18:27:43

标签: javascript math internet-explorer-8

我有一个Javascript函数可以计算一个值并将值重新插入<td>,同时还将值注入隐藏的<input>

这是我的功能:

$("input[name^='policies']:checkbox").change(function() {
    var el = $(this);

    if (el.is(":checked")) {
        no_policies++;
    }

    if (el.is(":not(:checked)")) {
        no_policies--;
    }

    subscription = no_policies*policy_cost;
    first_payment = Math.ceil(subscription+no_policies*(policy_cost/days_month)*days_left).toFixed(2);

    alert(first_payment);

    $("td#first_payment").text("R "+first_payment);
    $("input#first_payment_txt").val(first_payment);
    $("td#subscription").text("R "+subscription.toFixed(2));    
});

在此声明之前,所有内容都适用于IE8:

first_payment = Math.ceil(subscription+no_policies*(policy_cost/days_month)*days_left).toFixed(2);

我怀疑IE8在Math.ceil遇到问题,这是真的吗?另外,还有其他任何我可以用来绕过这个的功能/方法吗?

提前致谢。

3 个答案:

答案 0 :(得分:5)

对你的两个问题的答案都是肯定的:

Math.ceil()

Math.round()

  

以下文档支持   模式:Quirks,Internet Explorer 6   标准,Internet Explorer 7   标准,Internet Explorer 8   标准,Internet Explorer 9   标准。

另见Javascript compatibility for different IE versions的一般表格:

答案 1 :(得分:1)

似乎微软在从ie6(msdn)开始的所有版本上都支持Math.ceil,也许其中一个变量使用未定义或者您偏离0或其中一个变量不是数字,因此结果不能被封闭/舍入。

答案 2 :(得分:0)

IE8实际上有一个相当不错的调试器。我建议按F12打开它,然后转到Script选项卡并选择Start Debugging按钮。这将允许您在脚本中设置断点,让它停止并等待您按照自己的步调分析变量。正如阿德里亚诺在评论中提到的那样,这很可能是你的一个变量的问题。