@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.
При этом если вместо дробных чисел я использую целлые, все тоже работает корректно
  • Вопрос задан
  • 42 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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