Добрый день, есть следующий пример кода:
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.
При этом если вместо дробных чисел я использую целлые, все тоже работает корректно