我正在做以下事情
float years = (1/31536000) * 883102.00;
我得到年= 0000000
而实际答案是 0.0.28
关于可能出现问题的任何建议?
你应该改为
float years = (1.0/31536000.0) * 883102.00;
或者
float years = (1.0/31536000) * 883102.00;
可能也有效。您的第一个数字被视为整数。
做就是了
float years = 883102.00/31536000;
这将节省计算。因为你是用 1 潜水然后相乘。或者,只需将 1 设置为 1.00
1 是一个整数。然后编译器假定您有兴趣在 int 中工作,然后 1/3153600 变为 0。只需在 1 中添加一个 .0,您的 calc 就可以工作了。
float years = (1.0/31536000) * 883102.00;
第一项被转换为int
,因此被四舍五入为0
。尝试这个:
float years = (1.00 / 31536000.00) * 883102.00
(1/31536000) 将产生 0,乘以任何数字将为 0。使分子或分母中的至少一个浮动(如 1.0 或 31536000.0)
883102.0 / 31536000
会做你想做的。
因为整数除法
(1/31536000)
小数位被截断,结果为“零”。您必须添加一个点:
(1.0/31536000.0) or (1./31536000.)