На форуме реализован хороший механизм поиска. Сделайте запрос со словами деление целых и получите ответ.
Rosh :
На форуме реализован хороший механизм поиска. Сделайте запрос со словами деление целых и получите ответ.
На форуме реализован хороший механизм поиска. Сделайте запрос со словами деление целых и получите ответ.
В данном случае, когда я искал в чем проблема, даже предположить не мог, что это проблема деления целых.
Да, постфактум найти можно. Но я полностью согласен с NEO, что совершенно логично сохранять дробную часть при присвоении результата переменной типа double.
И все же скажите, где об этой особенности написано в документации на MT4?
Неужели пользователь должен к форуму обращаться?
Раздел Приведение типов:
Примеры:
int i = 1 / 2; // приведения типов нет, результат: 0
int i = 1 / 2.0; // выражение приводится к типу double, затем приводится к целевому типу int, результат: 0
double d = 1.0 / 2.0; // приведения типов нет, результат: 0.5
double d = 1 / 2.0; // выражение приводится к типу double, который совпадает с целевым типом, результат: 0.5
double d = 1 / 2; // выражение типа int приводится к целевому типу double, результат: 0.0
string s = 1.0 / 8; // выражение приводится к типу double, затем приводится к целевому типу string,
//результат: "0.12500000" (строка, содержащая 10 символов)
string s = NULL; // константа типа int приводится к целевому типу string,
// результат: "0" (строка, содержащая один символ)
string s = "Ticket #"+12345; // выражение приводится к типу string, который совпадает с целевым типом,
//результат: "Ticket #12345"
int i = 1 / 2.0; // выражение приводится к типу double, затем приводится к целевому типу int, результат: 0
double d = 1.0 / 2.0; // приведения типов нет, результат: 0.5
double d = 1 / 2.0; // выражение приводится к типу double, который совпадает с целевым типом, результат: 0.5
double d = 1 / 2; // выражение типа int приводится к целевому типу double, результат: 0.0
string s = 1.0 / 8; // выражение приводится к типу double, затем приводится к целевому типу string,
//результат: "0.12500000" (строка, содержащая 10 символов)
string s = NULL; // константа типа int приводится к целевому типу string,
// результат: "0" (строка, содержащая один символ)
string s = "Ticket #"+12345; // выражение приводится к типу string, который совпадает с целевым типом,
//результат: "Ticket #12345"
Ок! В документации есть! Был не прав.
P.S. Мануалы читают только ламеры! (c) народ :)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Убил сегодня кучу времени, пока понял,
почему не работает одна из, казалось бы,
простых функций.
Упрощено:
// ...
fdPercent(10);
fdPercent2(10);
// ...
double fdPercent(int nPercent)
{ double dResult;
dResult = 1+nPercent/100;
Print("dResult = "+DoubleToStr(dResult,2));
return(dResult);
}
double fdPercent2(double nPercent)
{ double dResult;
dResult = 1+nPercent/100;
Print("dResult2 = "+DoubleToStr(dResult,2));
return(dResult);
}
На выходе:
dResult = 1.00
dResult2 = 1.10
Объясните, ну почему результат деления целого числа на целое это снова целое?
И где такое описано в документации??