整数除法总是为零
可能重复:
C程序devise师
可能我的问题很简单和愚蠢。 我想存储一个分区的值,特别是1 / x ,其中x是一个整数值。 
 int x = 17; double result = 1/x; 
 我试图做到这一点,但我总是得到0.000000 ...我尝试input一个固定的值,例如1/17但总是得到相同的值..什么是错误的? 
你正在做整数除法。
尝试以下,它会按预期工作:
 int x = 17; double result = 1.0 / x; 
 上面expression式中的1的types是int ,而x的types是int。 当你做int / int ,你会得到一个int。 您至less需要其中一种浮点types( float或double float )才能进行浮点型除法。 
与math不同的是,C ++中的部门可以引用截断整数除法(你所做的)或浮点除法(在我的例子中是这样做的)。 小心这个!
 在我的例子中,显式地我们有double / int -> double 。