x % 10
int start()
{
int x = 13985;
Alert(StringSubstr(DoubleToStr((x*0.1),1),StringLen(DoubleToStr(x,0)),1));
}
вроде работает
x%=y работает с ошибками проверил, строки протестирую чуть позже.
код вроде был х%=10; Строки и x = i%10; работают без ошибок, всем спасибо большое.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте, нужно создать такую функцию чтобы она возвращала последнюю цифру числа, например для числа 13985 результат будет 5. Изначально хотел решить задачу с помощью MathMod(), но часто выдаёт неправильные результаты, пытался решить проблему с помощью https://www.mql5.com/ru/articles/1561 используя
double MathModCorrect(double a, double b)
{ int tmpres=a/b;
return(a-tmpres*b);
}
или
double MathModCorrect(double a, double b, int precisionRatio = -5)
{
double a_ = a;
double correction = MathMin(MathAbs(a), MathAbs(b))*MathPow(10, precisionRatio);
if (a_ > 0) a_ += correction;
else a_ -= correction;
int tmpres = a_/b;
return (a - tmpres*b);
}
но тоже иногда проскакивают ошибки. Может проще будет вывести последнюю цифру числа. Возможно что-то типа: результат = исходное число - исходное число округлённое в меньшую сторону до 4 цифры, только не могу найти как округлять в меньшую сторону. С MQL экспериментирую недавно, извините если что. Если можно меньше флуда. Спасибо