我有一个返回类型为double的函数。
我的退货声明是
return sum / (double)(weight/100);
其中sum是double,weight是int。
我在返回之前写了printf语句来检查值
总和是25.000和(双)(重量/ 100)给了我.500
但是返回声明给了我" inf"
它出了什么问题?
答案 0 :(得分:2)
你在weight
和100之间进行整数除法。如何:
return 100 * sum / weight;
通过这种方式,您可以乘以100和sum
并再次获得双倍,因为sum
是双倍的。然后将双重结果除以整数权重,并且不会遇到整数除法的问题。
答案 1 :(得分:1)
看起来weight
可能是整数,因此weight/100
提供0
,而sum / 0.0
提供inf
。只需将其重写为:
return sum / (weight/100.0);
答案 2 :(得分:0)
你必须先将体重增加到两倍。现在它将int除以100除以新的int。 (这可能变为0)然后你把它变成一个双,然后你用这个答案来划分和。我会改为:
return sum / ((double)weight)/100;