可能重复:
C programming division
可能我的问题很简单也很愚蠢。
我想存储一个除法的值,特别是1 / x
x
整数值。
int x = 17;
double result = 1/x;
我尝试这样做,但我总是得到0.000000 ...
我尝试输入一个固定在x中的值,例如1/17
,但总是得到相同的值..什么是错的?
答案 0 :(得分:28)
你正在进行整数除法。
尝试以下操作,它将按预期工作:
int x = 17;
double result = 1.0 / x;
上面表达式中1
的类型为int
,x
的类型为int。当你执行int / int
时,你会得到一个int。您需要至少有一种类型是浮点(float
或double
)才能进行浮点除法。
与数学不同,C ++中的除法可以指截断的整数除法(你做了什么)或浮点除法(我在我的例子中做了什么)。小心这个!
在我的示例中,我们明确地知道double / int -> double
。