Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.04.2020, 21:05
Интересующийся
Отправить личное сообщение для AlexRow Посмотреть профиль Найти все сообщения от AlexRow
 
Регистрация: 12.04.2020
Сообщений: 19

Как вычисляется значение в JavaScript?
Подскажите, почему на кальляторе значение xx+x равно 0.752001, а в JavaScript считает как 0.7520009999999999??? Я это значение считаю так: x+dx=0.5+0.001=0.501; xx+x=0.501*0.501+0.501=0.752001

Код:
function diff(f,x,dx){
  //Результат функции
  return f(x+dx)
}

//Функция для передачи аргументом
function G(x){
  //Значение функции
  return x*x+x;//0.7520009999999999
}
//Точное значение
function g(x){
  return 2*x+1;
}

for(let z=0.5; z<=2; z+=0.5){
  document.write(g(z)+' vs.'+diff(G,z,0.001)+'<br>')
}
Ответить с цитированием
  #2 (permalink)  
Старый 19.04.2020, 21:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

AlexRow,
Неточные вычисления
Ответить с цитированием
  #3 (permalink)  
Старый 19.04.2020, 22:01
Интересующийся
Отправить личное сообщение для AlexRow Посмотреть профиль Найти все сообщения от AlexRow
 
Регистрация: 12.04.2020
Сообщений: 19

Спасибо большое.
PS: если считать return x*(x+x), то точность почему то не теряется. Будет четко 0.502002. Может потому что, складывается 2 одинаковых числа, а при умножении точность не теряется.
Ответить с цитированием
  #4 (permalink)  
Старый 19.04.2020, 23:43
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,491

AlexRow,
alert(0.1*0.2); alert(0.1+0.2)

При любых операциях это может вылезти, всегда это нужно учитывать(если нужно). Притом погрешность имеет свойство накапливаться при большом количестве операций.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как взять значение value из формы? Sergius182 Events/DOM/Window 5 30.11.2018 10:09
Как получить значение которые были внесенны в td? Tomat Events/DOM/Window 3 01.08.2018 14:32
Как ввести в поле ввода значение где есть javascript MOZG Общие вопросы Javascript 8 19.04.2013 10:28
Как из javascript получить значение box-shadow? PAMAC Общие вопросы Javascript 11 10.06.2012 18:48
Как в IE динамически установить значение события onClick? Гость Элементы интерфейса 6 16.01.2011 23:46