Попробуйте 1.0-10.0/100
Попробуйте 1.0-10.0/100
Да, так выходит. Но что делать, если мне необходимо провести такое вычисление:
extern int A=10; extern int B=20; extern int C=30; double d = OrderLots()*(C/100)*(1-A/100)*(1-B/100)
Да, так выходит. Но что делать, если мне необходимо провести такое вычисление:
extern double A=10.0; extern double B=20.0; extern double C=30.0; double d = OrderLots()*(C/100.0)*(1-A/100.0)*(1-B/100.0)
Очень сбивает с толку такое положение вещей, заставляя каждый раз наступать на одни и те же грабли.
Да, спасибо. Посмотрел ваши ссылки. Проблему понял. Но все же во всех других языках результат деления двух даже целочисленных значений приводит к результату с плавающей точкой, даже если это 100/10.
Renat 26.08.05 14:06
Вот так вот и бывает, когда кто-то приходит в реальный мир программирования.
Возьмем стандартный С и запустим программу:
void main(void)
{
//----
printf("Result integer %d\n",70/100);
printf("Result double %lf\n",70/100.0);
//----
}
на выходе:
Result integer 0
Result double 0.700000
Что и требовалось доказать. И так практически во всех языках
уровня С/C++.
Я бы все-таки рекомендовал не бросаться с шашкой на профессиональных
программистов, пытаясь обвинить их в некомпетентности. Это
даже не смешно.
Математика. 1-й класс 2-я четверть. Неуд для MQL4:
Renat 26.08.05 14:06
Вот так вот и бывает, когда кто-то приходит в реальный мир программирования.
Возьмем стандартный С и запустим программу:
void main(void)
{
//----
printf("Result integer %d\n",70/100);
printf("Result double %lf\n",70/100.0);
//----
}
на выходе:
Result integer 0
Result double 0.700000
Что и требовалось доказать. И так практически во всех языках
уровня С/C++.
Я бы все-таки рекомендовал не бросаться с шашкой на профессиональных
программистов, пытаясь обвинить их в некомпетентности. Это
даже не
смешно.
Неужели мы еще и в этой теме полемику разведем? :))))
Неужели мы еще и в этой теме полемику разведем? :))))
ps: plz, не надо полностью цитировать такие большие посты
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
1-10/100 - результат 1. Не помогает даже NormalizeDouble(1-10/100, 10)
1-0.1 - результат 0.9
1-(10/100) - результат 1.
ПОЧЕМУ?????
Дошло до абсурда: Результат: 0 1. То есть при делении 10 на 100 получаем 0!!!