特定运营商会给我不同的结果吗?

时间:2015-03-15 14:35:20

标签: c++ floating-point int operators

我在Sam的自学工作书中工作,在第5课中,研讨会要求显示32/7和32.0 / 7的结果。使用不同的运算符(如float或int)会给我不同的结果吗?我尝试在我的代码中,但它导致了一个错误。你能指出我正确的方向吗?

#include <iostream>
#include "stdafx.h"
using namespace std;

int main()
{
    int num1 = 32, num2 = 32.0, num3 = 7;
    int result = num1/num3;
    float result2 = num2/num3;

    cout << result << endl;
    cout << result2 << endl;
    return 0;
}

2 个答案:

答案 0 :(得分:1)

int num1 = 32, num2 = 32.0, num3 = 7;

在这行代码中,您尝试将32.0(浮点数)分配给整数数据类型,这是非法的。所以试试这个来理解

cout<<32/7<<endl;
cout<<32.0/7<<endl;

答案 1 :(得分:0)

您已将所有三个数字num1num2num3声明为int,因此它们将表现为整数。您可能希望将num2声明为float result2来存储float值。当两个ints被划分时,它们将产生int,之后如果您将结果存储在float中,则只会导致floating point表示整数结果。例如:对于result2num2/num3将为32/7,它将等于4整数。现在,因为它必须存储在float(从右到左阅读表达式),所以它将被类型化为4.000000