Почему нет потери точности с десятичной арифметикой с использованием IE10? - PullRequest
3 голосов
/ 04 ноября 2019

Я обнаружил, что с IE10 нет потери точности, что характерно для других браузеров, таких как Edge, Chrome, Firefox. Я хотел бы знать, есть ли совместимый обходной путь в IE10?

  • В IE10

    enter image description here

  • В других браузерах

    enter image description here

1 Ответ

0 голосов
/ 04 ноября 2019

Попробуйте очистить данные браузера (кеш и историю), затем перепроверьте.

Я проверил его на своем компьютере, все браузеры (включая IE 9+, Microsoft Edge, Chrome и Firefox) будут отображать один и тот же результат 0.30000000000000004, это арифметическая проблема с плавающей точкой, выможет проверить эту статью и эту тему .

Для решения арифметической задачи с плавающей запятой мы могли бы использовать следующие методы:

  1. , пожалуйста, обратитесь к следующему коду:

    var x = 0.2 + 0.1;
    document.getElementById("demo1").innerHTML = "0.2 + 0.1 = " + x;
    var y = (0.2*10 + 0.1*10) / 10;
    document.getElementById("demo2").innerHTML = "0.2 + 0.1 = " + y; 
    

    выведите как показано ниже:

    0.2 + 0.1 = 0.30000000000000004
    0.2 + 0.1 = 0.3
    
  2. с использованием метода toFixed.

    var x = 0.1;
    var y = 0.2; 
    console.log((x + y).toFixed(1));
    

    Результат: 0.3

...