@Conan_Doyle

Почему 150/1000 == 0?

double n = 150/1000;
    cout << n << endl;
  • Вопрос задан
  • 213 просмотров
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
Потому что деление происходит int/int, то есть целочисленное.
Надо 150.0/1000.

Это известный глюк Си-подобных языков — a/b в зависимости от типа или деление, или неполное частное. В Паскале, например, неполное частное — a div b. В Си-подобных языках с динамической типизацией (JS) отказались от неполного частного, ибо мы тип плохо контролируем.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы