特定运算符会给我不同的结果吗?
Will Specific Operators give me different results?
我正在学习 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;
}
您已将所有三个数字 num1
、num2
和 num3
声明为 int
,因此它们将表现为整数。您可能希望将 num2
声明为 float
,以便 result2
存储 float
值。当两个 ints
相除时,它们将产生 int
,之后如果将结果存储在 float
中,它只会产生 floating point
表示整数结果。例如:对于 result2
,num2/num3
将是 32/7
,这将等于 4
作为整数。现在,由于它必须存储在 float
中(从右到左读取表达式),它将被类型转换为 4.000000
。
int num1 = 32, num2 = 32.0, num3 = 7;
在这行代码中,您试图将 32.0(浮点数) 分配给整数数据类型,这是非法的。所以试试这个来理解
cout<<32/7<<endl;
cout<<32.0/7<<endl;
我正在学习 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;
}
您已将所有三个数字 num1
、num2
和 num3
声明为 int
,因此它们将表现为整数。您可能希望将 num2
声明为 float
,以便 result2
存储 float
值。当两个 ints
相除时,它们将产生 int
,之后如果将结果存储在 float
中,它只会产生 floating point
表示整数结果。例如:对于 result2
,num2/num3
将是 32/7
,这将等于 4
作为整数。现在,由于它必须存储在 float
中(从右到左读取表达式),它将被类型转换为 4.000000
。
int num1 = 32, num2 = 32.0, num3 = 7;
在这行代码中,您试图将 32.0(浮点数) 分配给整数数据类型,这是非法的。所以试试这个来理解
cout<<32/7<<endl;
cout<<32.0/7<<endl;