我在C ++中使用的代码是:
float y;
y=360/100;
cout<<y;
输出为3。 即使如果我不输出y,而是将其用于左(y)之类的函数,则取值3而不是3.6。但如果我定义y = 360.0 / 100,它就可以正常工作。
顺便说一下,left()是我们CS教授制作的包中的一个函数。左(x)向左改变方向角度x度。基于徽标的包。
答案 0 :(得分:2)
这是定义语言的方式。您将int
除以int
,因此执行计算得到int
,给出3
(截断,而不是舍入)。
然后,您将3
存储到float
,并提供3.0
。
如果您希望使用float
执行除法,请至少设置一个参数float
,例如360f / 100
。 float
。这样,在执行除法之前,他们的其他参数将转换为360 / 100f
。
360.0
同样可以正常工作,但我认为尽可能早地说清楚这是一个浮点计算,而不是一个整体计算可能是有意义的;这是人类的考虑,而不是技术考虑。
(请注意double
实际上是double
,虽然使用它也可以。分割将作为float
执行,然后结果转换为{{1对于作业而言。)
答案 1 :(得分:0)
360/100
在整数算术中计算,然后分配给float
。
重新加工360f / 100
是我最喜欢的解决方法。
最后这些日子float
适用于那些不了解现代芯片组如何工作的乳蛋饼,女孩和民众。请改用double
类型 - 可能会更快 - 和360.0 / 100
。