为了账号安全,请及时绑定邮箱和手机立即绑定

整数除法总是零

/ 猿问

整数除法总是零

MMMHUHU 2019-06-24 09:53:36

整数除法总是零

也许我的问题很简单也很愚蠢。我想存储一个部门的价值,特别是1 / x哪里x是整数值。

int x = 17;double result = 1/x;

我试着去做,但我总是0.000000 ...例如,我尝试输入一个在x中固定的值。1/17但总是得到同样的价值.。怎么了?


查看完整描述

3 回答

?
慕后森

你在做整数除法。

尝试以下操作,它将如预期的那样工作:

int x = 17;double result = 1.0 / x;

类的类型。1在上面的表达式中是int的类型x是INT。当你做的时候int / int你会得到一个积分。您至少需要其中一种类型是浮点(floatdouble)以便进行浮点除法。

与数学中不同的是,C+中的除法既可以是截断整数除法(您所做的),也可以是浮点除法(我在我的示例中所做的)。小心点!

在我的例子中,我们所拥有的是double / int -> double.


查看完整回答
反对 回复 2019-06-24
?
慕斯709654

或者明确地说:double result = (double)1 / x;

查看完整回答
反对 回复 2019-06-24
?
慕慕0277861

你的意思是double result = 1.0 / x;?嗯,编译器会为你做这件事,但他可能会嘲笑你,因为你自己没有识别出一个双重文字。

查看完整回答
反对 回复 2019-06-24

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信