Как определить тип данных арифметических выражений с участием делений в Переполнение стека

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

// 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;
}

выход :

n/2 = 3
n/3.3 = 2.12121

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

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

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

0

Решение

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

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]