特定运算符会给我不同的结果吗?
Will Specific Operators give me different results?
我正在我的山姆自学作业本中工作,在第 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;
你已经声明了所有三个数字num1
、num2
和num3
为int
,所以它们的行为将表现为整数。您可能希望将num2
声明为result2
存储float
值的float
。当两个ints
相除时,它们将导致int
,之后如果你将结果存储在float
中,它只会产生整数结果的floating point
表示。例如:对于result2
,num2/num3
将32/7
等于4
作为整数。现在,由于它必须存储在float
中(从右到左读取表达式),因此它将被类型转换为 4.000000
。
相关文章:
- 使用++运算符会导致意外的结果
- 三元运算符在返回语句中给出意外的结果
- oStream 不打印添加两个 valarray 的结果(使用运算符重载)
- 当关系运算符的含义相同时,为什么结果不同?
- 有没有办法将 for 循环结果返回到像三元运算符这样的函数中?
- C++:比较运算符>和字符串文本的意外结果
- 为什么 == 运算符没有产生与 strcmp 相同的结果?
- 具有预分配结果C++的重载加运算符
- 使用 C++ 中的运算符重载显示不正确的结果
- 为什么当我使用额外的括号而不使用运算符重载时,插入运算符在 std::cout 中给出不同的结果?
- 为什么这个条件运算符的计算结果为 int?
- 为什么>>运算符在不同的编译器上显示不同的结果?
- 运算符的两个不同结果 - 在 c++11 中
- C++ 中的增量运算符未获得正确的结果
- 为什么在std :: string上尺寸运算符会产生意外结果
- 重载前增量运算符使用重载后增量运算符内的变量结果
- C++运算符和带枚举的计算结果为 false
- sizeof(…)运算符结果的使用令人困惑
- 根据运算符推断模板返回类型:结果
- 运算符*=来自两个实例(矩阵),结果不好