Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.01.2023, 12:37
Аватар для Behemoth911
Интересующийся
Отправить личное сообщение для Behemoth911 Посмотреть профиль Найти все сообщения от Behemoth911
 
Регистрация: 17.01.2023
Сообщений: 28

Не корректно работает формула при выводе
При проверке результата выдаёт NaN , помогите решить проблему.
Сама формула в WebCalc 2.0 выглядит так:

Sтд=Sю+Va×T3/7.2-L-C

9.3+38.5*0.25/7.2-2.52-0.838 (должно выйти в итоге 7.27)

Код HTML:
<h1>Визначення Sтд</h1>
    <form id="formInput3">
        <div>T3
            <select id="T33">
                <option>0.25</option>
                <option>0.4</option>
                <option>0.6</option>
            </select>
        </div>
        <div>
            <label>Sj</label>
            <input type="number">
        </div>
        <div>
            <label>va</label>
            <input type="number">
        </div>
        <div>
            <label>L</label>
            <input type="number">
        </div>
        <div>
            <label>C</label>
            <input type="number">
        </div>
    </form>
    <button onclick="breakWay3()">Результат Sтд</button>
    <h2 id="resultF4"></h2>


Код JS:

function breakWay3() {
    const form = document.querySelector('#formInput3');
    const Sj = form[1].value;
    const va = form[2].value;
    const L = form[3].value;
    const C = form[4].value;
    const t3 = Number(document.querySelector('#T33').value);
    let resultF4 = Sj + va * t3 / 7.2 - L - C;
    console.log(+resultF4.toFixed(2));
    const result = document.querySelector('#resultF4');
    result.innerText = `Результат: ${Number(resultF4.toFixed(2))}`;
}

Последний раз редактировалось Behemoth911, 17.01.2023 в 12:45.
Ответить с цитированием
  #2 (permalink)  
Старый 17.01.2023, 12:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,134

Behemoth911,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #3 (permalink)  
Старый 17.01.2023, 12:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,134

Behemoth911,
строки преобразуйте в числа +form
Ответить с цитированием
  #4 (permalink)  
Старый 17.01.2023, 12:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,134

Behemoth911,
Сообщение от Behemoth911
должно выйти в итоге 7.27
??? 7.28 выходит
<!DOCTYPE html>
<html>

<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
    </style>
</head>

<body>
    <h1>Визначення Sтд</h1>
    <form id="formInput3">
        <div>T3
            <select id="T33">
<option selected="selected">0.25</option>
<option>0.4</option>
<option>0.6</option>
</select>
        </div>
        <div>
            <label>Sj</label>
            <input type="number" value="9.3">
        </div>
        <div>
            <label>va</label>
            <input type="number" value="38.5">
        </div>
        <div>
            <label>L</label>
            <input type="number" value="2.52">
        </div>
        <div>
            <label>C</label>
            <input type="number" value="0.838">
        </div>
    </form>
    <button onclick="breakWay3()">Результат Sтд</button>
    <h2 id="resultF4"></h2>
    <script>
        function breakWay3() {
            const form = document.querySelector('#formInput3');
            const Sj = +form[1].value;
            const va = +form[2].value;
            const L = +form[3].value;
            const C = +form[4].value;
            const t3 = Number(document.querySelector('#T33').value);
            resultF4 = Sj + va * t3 / 7.2 - L - C;
            console.log(+resultF4.toFixed(2));
            const result = document.querySelector('#resultF4');
            result.innerText = `Результат: ${Number(resultF4.toFixed(2))}`;
        }
    </script>
</body>

</html>
Ответить с цитированием
  #5 (permalink)  
Старый 17.01.2023, 12:51
Аватар для Behemoth911
Интересующийся
Отправить личное сообщение для Behemoth911 Посмотреть профиль Найти все сообщения от Behemoth911
 
Регистрация: 17.01.2023
Сообщений: 28

Сейчас проверю)
Ответить с цитированием
  #6 (permalink)  
Старый 17.01.2023, 12:54
Аватар для Behemoth911
Интересующийся
Отправить личное сообщение для Behemoth911 Посмотреть профиль Найти все сообщения от Behemoth911
 
Регистрация: 17.01.2023
Сообщений: 28

Да, ошибку свою понял) Если можно буду ещё к вам обращаться?)
Ответить с цитированием
  #7 (permalink)  
Старый 17.01.2023, 13:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,134

Behemoth911,
да)))
Ответить с цитированием
  #8 (permalink)  
Старый 17.01.2023, 14:54
Аватар для Behemoth911
Интересующийся
Отправить личное сообщение для Behemoth911 Посмотреть профиль Найти все сообщения от Behemoth911
 
Регистрация: 17.01.2023
Сообщений: 28

рони, Спасибо) Ещё вопрос (сразу скажу, что я пока разбираюсь в JS, но знаю что мне надо написать в итоге)) - можно ли (допустим) если есть 5 формул подряд - 1 просто считается (как эта, что Вы помогли), вторая тоже, а вот в третью мне надо уже чтобы оно брало вводные с результатов 1 и 2й формулы? https://ibb.co/RDbwwr7

Последний раз редактировалось Behemoth911, 17.01.2023 в 14:58.
Ответить с цитированием
  #9 (permalink)  
Старый 17.01.2023, 15:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,134

Behemoth911,
функция должна что-то возвращать и тогда будет что-то типа
function breakWay3() { ...
return  result}
function breakWay4() { ...
return  result}
function breakWay5() {
return breakWay3() * breakWay5() };
let x = breakWay5();


Возврат значения
Ответить с цитированием
  #10 (permalink)  
Старый 17.01.2023, 15:15
Аватар для Behemoth911
Интересующийся
Отправить личное сообщение для Behemoth911 Посмотреть профиль Найти все сообщения от Behemoth911
 
Регистрация: 17.01.2023
Сообщений: 28

рони,

я просто тут чуть другим путем пошёл - неверным(

resultF3 - из 1 формулы посщитаной
resultF4 - 2 формулы посщитаной

function breakWay4() {
    const form = document.querySelector('#formInput4');
    console.log(form);
    const t3 = Number(document.querySelector('#T3').value);    
    const J = Number(document.querySelector('#J4').value);
    resultF5 = resultF3 - (Math.sqrt(resultF3 ** 2 - ( 2 * resultF4 ) / J + (t3 * t3) / 4));
    console.log(+resultF5.toFixed(4));
    const result = document.querySelector('#resultF5');
    result.innerText = `Результат2: ${Number(resultF5.toFixed(4))}`;
}


и ещё надо чтоб результаты оно отобразило перед тем тех ещё формул и учло их в 3й формуле, как-то так
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
при выводе html кода через jquery все криво Satell Общие вопросы Javascript 0 19.03.2016 18:07
Не работают скрипты при выводе блоков через ng-include vsenetak Angular.js 0 13.01.2016 11:02
Не работает $http.get при закрытии страницы AlexDH Angular.js 0 30.09.2015 13:12
не корректно работает с разными версиями веб betonka Events/DOM/Window 12 08.04.2011 12:45
В объекте не корректно работает инкремента (++ или +=1)) Bratok Общие вопросы Javascript 2 28.04.2009 01:28