我正在做以下
float years = (1/31536000) * 883102.00;
我得到年= 0000000
而实际答案是0.0.28
有关可能出错的任何建议吗?
答案 0 :(得分:3)
你应该改为
float years = (1.0/31536000.0) * 883102.00;
或
float years = (1.0/31536000) * 883102.00;
也可以。您的第一个数字被视为整数。
答案 1 :(得分:3)
只做
float years = 883102.00/31536000;
这将节省计算。 因为你正在以某种方式潜水,然后成倍增加。 或者只设置1到1.00
答案 2 :(得分:1)
1是一个int。然后编译器假定您有兴趣使用ints,然后1/3153600变为0.只需将.0添加到1,您的计算就可以了。
float years = (1.0/31536000) * 883102.00;
答案 3 :(得分:1)
第一个词被投射为int
,因此被舍入为0
。试试这个:
float years = (1.00 / 31536000.00) * 883102.00
答案 4 :(得分:1)
(1/31536000)将产生0乘以任何数字为0。 至少使用分子或分母浮点数(如1.0或31536000.0)
答案 5 :(得分:1)
883102.0 / 31536000
会做你想做的事。
答案 6 :(得分:1)
由于整数分部
(1/31536000)
小数位数被截断,结果为“零”。 你必须添加一个点:
(1.0/31536000.0) or (1./31536000.)