Например, потому, что аргумент может выходить за пределы типа
int. Скажем,
Могу привести еще один "странный" пример: iVolume(), функция, тип возвращаемого значения которой - double. Причина та же.
Print( MathCeil( 1234567891011234.56 ) );выдает результат 1234567891011235. Это число явно больше любого числа типа int. Ну а если нужен результат целого типа - тебе никто не мешает. ..
Могу привести еще один "странный" пример: iVolume(), функция, тип возвращаемого значения которой - double. Причина та же.
drknn:
Читаем справку по MQL4 в редакторе терминала. Цитирую:
double MathCeil( double x)
Функция возвращает числовое значение, представляющую наименьшее целое число, которое больше или равно x.
Возникает резонный вопрос. Если функция возвращает целое и только целое число, тогда пуочему она сама имеет тип double?
Читаем справку по MQL4 в редакторе терминала. Цитирую:
double MathCeil( double x)
Функция возвращает числовое значение, представляющую наименьшее целое число, которое больше или равно x.
Возникает резонный вопрос. Если функция возвращает целое и только целое число, тогда пуочему она сама имеет тип double?
Аналогично возникает ризонный вопрос, почемы вы считаете, что она должна быть типа int?
Mathemat:
Например, потому, что аргумент может выходить за пределы типа int. Скажем,
Могу привести еще один "странный" пример: iVolume(), функция, тип возвращаемого значения которой - double. Причина та же.
выдает результат 1234567891011235 - но ведь число ЦЕЛОЕ!!!
Например, потому, что аргумент может выходить за пределы типа int. Скажем,
Print( MathCeil( 1234567891011234.56 ) );выдает результат 1234567891011235. Это число явно больше любого числа типа int. Ну а если нужен результат целого типа - тебе никто не мешает. ..
Могу привести еще один "странный" пример: iVolume(), функция, тип возвращаемого значения которой - double. Причина та же.
Integer:
Аналогично возникает ризонный вопрос, почемы вы считаете, что она должна быть типа int?
Аналогично возникает ризонный вопрос, почемы вы считаете, что она должна быть типа int?
Кгода пишем подпрограмму, если она возвращает нам целое число, мы объявляем подпрограмму, как имеющую целочисленный тип. Если не должна ни чего возвращать, то мы объявляем её как void.
double MathCeil( double x) является точно такой же подпрограммой с тем лишь отличием, что её создал разработчик, а не пользователь. Просто я не вижу разницы.
drknn:
Кгода пишем подпрограмму, если она возвращает нам целое число, мы объявляем подпрограмму, как имеющую целочисленный тип. Если не должна ни чего возвращать, то мы объявляем её как void.
double MathCeil( double x) является точно такой же подпрограммой с тем лишь отличием, что её создал разработчик, а не пользователь. Просто я не вижу разницы.
Попробуйте написать функцию, аналогичную MathCeil, но типа int, и опробуйте на ней пример Mathemat-а.
Кгода пишем подпрограмму, если она возвращает нам целое число, мы объявляем подпрограмму, как имеющую целочисленный тип. Если не должна ни чего возвращать, то мы объявляем её как void.
double MathCeil( double x) является точно такой же подпрограммой с тем лишь отличием, что её создал разработчик, а не пользователь. Просто я не вижу разницы.
komposter:
Или можно даже проще
Результат:Или можно даже проще
2007.08.30 09:55:54 __________ EURUSD,Daily: 1016612515
drknn:
Кгода пишем подпрограмму, если она возвращает нам целое число, мы объявляем подпрограмму, как имеющую целочисленный тип. Если не должна ни чего возвращать, то мы объявляем её как void.
double MathCeil( double x) является точно такой же подпрограммой с тем лишь отличием, что её создал разработчик, а не пользователь. Просто я не вижу разницы.
Integer:
Аналогично возникает ризонный вопрос, почемы вы считаете, что она должна быть типа int?
Аналогично возникает ризонный вопрос, почемы вы считаете, что она должна быть типа int?
Кгода пишем подпрограмму, если она возвращает нам целое число, мы объявляем подпрограмму, как имеющую целочисленный тип. Если не должна ни чего возвращать, то мы объявляем её как void.
double MathCeil( double x) является точно такой же подпрограммой с тем лишь отличием, что её создал разработчик, а не пользователь. Просто я не вижу разницы.
а это функция обрабатывающая число дабл и поэтому возвращает дабл. Проблем меньше будет, вот если возвращала инт, вот тут бы реально завыли
На самом деле совсем несложно написать и функцию, возвращающую
"целое" 1234567891011235, но для него придется придумывать его
представление, например, в двоичной системе счисления. Разумеется,
это будет уже не тип int, а некий массив цифр этого числа. Но для работы с подобными большими
целыми числами придется придумывать целую библиотеку. Потренируйся,
drknn, если интересно.
Спасибо всем за разъяснения.
Скрипт komposter-а так вообще убил во мне все сомнения напрочь. :)
Mathemat, если честно, то панически не хватает времени, поэтому и выходишь вот так на форум и спрашиваешь у тех, кто знает.
Ну и конечно, стараешься задавать вопросы по-делу, а не фигню всякую.
Скрипт komposter-а так вообще убил во мне все сомнения напрочь. :)
Mathemat, если честно, то панически не хватает времени, поэтому и выходишь вот так на форум и спрашиваешь у тех, кто знает.
Ну и конечно, стараешься задавать вопросы по-делу, а не фигню всякую.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
double MathCeil( double x)
Функция возвращает числовое значение, представляющую наименьшее целое число, которое больше или равно x.
Возникает резонный вопрос. Если функция возвращает целое и только целое число, тогда пуочему она сама имеет тип double?