特定运算符会给我不同的结果吗?

Will Specific Operators give me different results?

本文关键字:结果 运算符      更新时间:2023-10-16

我正在我的山姆自学作业本中工作,在第 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;
}
int num1 = 32, num2 = 32.0, num3 = 7;

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

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

你已经声明了所有三个数字num1num2num3int,所以它们的行为将表现为整数。您可能希望将num2声明为result2存储float值的float。当两个ints相除时,它们将导致int,之后如果你将结果存储在float中,它只会产生整数结果的floating point表示。例如:对于result2num2/num332/7等于4作为整数。现在,由于它必须存储在float中(从右到左读取表达式),因此它将被类型转换为 4.000000