Как определить тип данных арифметических выражений с участием делений в C ++ - PullRequest
0 голосов
/ 23 сентября 2018

Посмотрите на следующую программу.

// Example program
#include <iostream>
#include <string>

int main()
{
  int n=7;  
  std::cout <<"n/2 = "<< n/2 << std::endl;
  std::cout <<"n/3.3 = "<< n/3.3 << std::endl;
}

output:

n/2 = 3
n/3.3 = 2.12121

В приведенном выше примере

  • Выражение "n / 2"были оценены с использованием целочисленного деления.
  • Выражение "n / 3.3" вычислено с использованием деления действительного числа.

Каковы правила определения того, какое деление используется?

1 Ответ

0 голосов
/ 23 сентября 2018

Арифметические операции с двумя целочисленными операндами оцениваются в целочисленном контексте;арифметические операции с хотя бы одним операндом с плавающей запятой оцениваются в контексте с плавающей запятой.(Помимо этого существуют более конкретные правила преобразования типов, но основная идея заключается в том, что если один из операндов равен float или double, он превращает другой в float или double, если его еще нет.)

...