Задать вопрос
@AlexGenesis

Почему Evaluate считает не корректно?

Добрый день, есть следующий пример кода:
public TMP_InputField Field_Function;

public void OnCalculate()
{
      func = Field_Function.text;
      for (float i = 0; i < 1; i += 0.2f)
      {
            ExpressionEvaluator.Evaluate(func.Replace("x", i.ToString()), out float res);
            Debug.Log(res);
      }
}

Если пользователь напишет в поле просто "x", то результат программы будет корректным и он выведет в консоль 0, 0.2, 0.4, 0.6, 0.8. Но если человек решит ввести болей сложную функцию, например "x+2", то вместо 2, 2.2, 2.4, 2.6, 2.8, в консоли появится 0, 0, 0, 0, 0, 0 что свидетельствует об ошибки при подсчете.
Я предполагаю что ошибка возникает из за Replace("x", i.ToString()), но при этом не знаю как это исправить.

Edit.
При этом если вместо дробных чисел я использую целлые, все тоже работает корректно
  • Вопрос задан
  • 49 просмотров
Подписаться 1 Средний 3 комментария
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы