Целочисленное деление всегда равно нулю

Возможный дубликат:
C программирование

наверное, мой вопрос очень прост и глуп. Я хотел бы сохранить значение деления, в частности 1 / x где x – целочисленное значение.

 int x = 17; double result = 1/x; 

Я пытаюсь это сделать, но я всегда получаю 0.000000 ... Я пытаюсь ввести значение, зафиксированное в x, например 1/17 но всегда получаю то же значение .. что случилось?

Вы выполняете целочисленное деление.

Попробуйте следующее, и он будет работать, как ожидалось:

 int x = 17; double result = 1.0 / x; 

Тип 1 в выражении, который у вас выше, есть int , а тип x – int. Когда вы делаете int / int , вы получаете int back. Для деления с плавающей запятой требуется, по крайней мере, один из типов, которые должны быть плавающей точкой ( float или double ).

В отличие от математики, деление на C ++ может ссылаться на усеченное целочисленное деление (что вы сделали) или на деление с плавающей запятой (что я сделал в моем примере). Будьте осторожны!

В моем примере, явно, что у нас есть double / int -> double .

  • Почему Double.MIN_VALUE не является отрицательным?
  • Сделать поплавок показывать только два десятичных знака
  • В MATLAB переменные ДЕЙСТВИТЕЛЬНО двойной точности по умолчанию?
  • Когда следует использовать ключевое слово "strictfp" в java?
  • Почему значение с плавающей запятой, такое как 3.14, по умолчанию считается в MSVC?
  • Могу ли я заставить gcc сказать мне, когда вычисление приводит к NaN или inf во время выполнения?
  • pow (), кажется, отсутствует здесь
  • Усечение Десятичное число не округлено
  • Почему деление двух целых чисел возвращает 0.0 в Java?
  • Java двойное сравнение epsilon
  • Является ли наиболее значительная десятичная цифра точностью, которая может быть преобразована в двоичную и обратно в десятичную без потери значимости 6 или 7.225?
  • Interesting Posts

    Флаги Perl -pe, -pi, -p, -w, -d, -i, -t?

    Существуют ли генераторы случайных чисел без гражданства?

    Почему мой клиентский сокет не получает то, что посылает мой серверный сокет?

    Как вы издеваетесь над файловой системой в C # для модульного тестирования?

    React: обработчик onClick получает вызов для каждого рендеринга?

    Когда следует использовать std :: size_t?

    автоматически получать номер телефона в андроиде

    Все папки на всех дисках настроены на чтение только в Windows XP и не могут быть изменены

    Обратный вызов jQuery при загрузке изображения (даже при кэшировании изображения)

    Как импортировать сохраненный поезд модели Tensorflow с использованием tf.estimator и предсказать входные данные

    Ограничение списка удаленных IP-адресов брандмауэра Windows Firewall

    Центр Выровнять название в панели действий, используя стили в android.

    Можно ли std :: переместить объекты из функций? (C ++ 11)

    Не удается удалить каталог с помощью Directory.Delete (путь, истина)

    Рисование линейного графика в Excel с числовой осью x

    Давайте будем гением компьютера.