整数除法总是零
Integer division always zero
可能重复:
C编程部门
也许我的问题很简单也很愚蠢。我想存储除法的值,特别是1 / x
,其中x
是整数值。
int x = 17;
double result = 1/x;
我试着这样做,但我总是得到0.000000 ...
。我试着输入一个固定在x中的值,例如1/17
,但总是得到相同的值。。怎么了?
您正在进行整数除法。
尝试以下操作,它将按预期工作:
int x = 17;
double result = 1.0 / x;
在上面的表达式中,1
的类型是int
,x
的类型是int。当您执行int / int
时,您会得到一个int。要进行浮点除法,至少需要其中一种类型为浮点(float
或double
)。
与数学不同,C++中的除法既可以指截断整数除法(您所做的),也可以指浮点除法(我在示例中做的)。小心!
在我的例子中,明确地说,我们有double / int -> double
。
相关文章:
- 按运行时常量值重复整数除法
- C++整数除法到浮点数
- 可视化整数除法优化 MSVC C++
- 将浮点除法分解为整数和小数部分
- 实现整数除法向上舍入的正确方法是什么?
- C++整数除法给出非常大的数字
- 用于在2个带符号整数区间之间进行除法的C++算法
- 除法函数随机整数需要打印出商和余数
- 将整数除法到整数是否需要强制转换以浮点数或双精度以更精确
- C++ 整数除法
- C++中的整数除法无法按预期工作
- 如何在C++中对大数据整数进行加法、求和、乘法和除法运算
- 只产生整数C++的除法
- 避免使用无符号整数除法
- 实现欧几里得除法,根据两个正整数的线性组合编写这两个正整数的最大公约数
- 大数(长长以上)和单个整数之间的除法
- 截断的整数除法删除
- 整数除法或浮点数乘法
- 不带逻辑运算符的舍入整数除法
- c++编码除法整数