计算数学运算
Evaluating mathematical operations
我正在运行这段代码:
int x, y;
float val1, val2, val3;
x = 20;
y = 25;
val1 = x - 10;
val2 = y/val1;
val3 = float(val2);
val4 = float(y/(x-10));
以上输出:
val1 = 10
2
谁能给我解释一下为什么val3和val4的计算不同?
它们的计算方式不同。
val3 = float(y / float(x - 10))
val4 = float(y / (x - 10)
对于val3
,类型是float(int / float)
, val4
是float(int / int)
,将y / (x - 10)
的结果先强制转换为int
,然后再强制转换为float
。
(y/x-10)
正在处理整数。在此计算之后才应用浮点数,这将产生2
。
y
和x
都是整数。因此,20 (x
的值)- 10 = 10。然后25/10(仍然处理整数-还没有浮点数)= 2。
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 递归函数计算序列中的平方和(并输出过程)
- 使用C++中的模板和运算符重载执行矩阵运算
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的字符计数代码计算错误.为什么
- 在计算中使用二的幂有多有利可图
- 如何计算文件中的"columns"数?
- GCC本机矩阵运算库
- 计算排序向量的向量中唯一值的计数
- 如何使用 std::累积在 C++ 中计算总和立方体
- 使用Qt C++计算类似Git的SHA1哈希
- OpenCV C++.快速计算混淆矩阵
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- C++如何计算用户输入的数字中的偶数位数
- 如何在 C++ 中计算字符串的算术运算
- 计算多项式ax 3 + bx2 + cx + d的程序,对于给定的a,b,c和d,使用最少的运算次数
- 矩阵幂运算用于计算可能的路由数
- 计算数学运算
- 当使用STD::unique_ptr定义的一元运算时,STD算法中的术语不计算为1个参数
- 如何在C++中计算运算