Почему номер Javascript обычно является точным до тех пор, пока не будет выполнена операция, и всегда ли так? [дубликат]Javascript

Форум по Javascript
Ответить
Anonymous
 Почему номер Javascript обычно является точным до тех пор, пока не будет выполнена операция, и всегда ли так? [дубликат]

Сообщение Anonymous »

Я понимаю, что при вычислениях с плавающей запятой накапливаются ошибки, но не понимаю, почему ошибки не проявляются до тех пор, пока не будет выполнена математическая операция.
Например...

Код: Выделить всё

let a = 0.1
let b = 0.2
let c = 0.3
let d = a+b
console.log(a==0.1) //true
console.log(b==0.2) //true
console.log(c==0.3) //TRUE??
console.log(d==0.3) //false


В основном я спрашиваю:
  • Почему c == 0,3 истинно, если d == 0,3 ложно.
  • Существуют ли маленькие числа, присвоение которых переменной и проверка их равенства переменной будет ложным, потому что их невозможно точно сохранить, или ошибки точности возникают только во время математических операций.
Думаю, я могу написать своего рода неосведомленный тест для широкого диапазона чисел, используя математическую библиотеку точности и сравнить значения следующим образом...

Код: Выделить всё

for (let x=0; x

Подробнее здесь: [url]https://stackoverflow.com/questions/79874166/why-are-javacript-number-usually-precise-until-an-operation-is-performed-and-is[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»