Поддерживается ли Math.ceil () и Math.round () в IE8? - PullRequest
3 голосов
/ 23 марта 2011

У меня есть функция 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 ]

5 голосов
/ 23 марта 2011

Ответ "да" на оба ваших вопроса:

Math.ceil ()

Math.round ()

Поддерживается в следующих режимах документа: причуды, стандарты Internet Explorer 6, стандарты Internet Explorer 7, стандарты Internet Explorer 8, стандарты Internet Explorer 9.

См. Также общую таблицу Совместимость с Javascript для различных версий IE :

1 голос
/ 23 марта 2011

Похоже, что Microsoft поддерживает Math.ceil во всех версиях, начиная с ie6 ( msdn ), возможно, одна из используемых переменных не определена, или вы делите на 0, или одна из переменных не является числом, поэтому результат не может быть отфильтрован / округлен.

0 голосов
/ 23 марта 2011

IE8 на самом деле имеет довольно хороший отладчик. Я рекомендую нажать F12, чтобы открыть его, затем перейти на вкладку «Сценарий» и нажать кнопку «Начать отладку». Это позволит вам устанавливать точки останова вдоль сценария, позволяя ему остановиться и ждать, пока вы проанализируете переменные по мере их выполнения в своем собственном темпе. Как упоминает Адриано в своем комментарии, это, скорее всего, проблема с одной из ваших переменных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...