我在显示和保留任何浮动数字或双重或长或浮动类型时遇到问题这是代码:
int sd, n;
float d;
d=n/sd.capacity();
cout << d.toFloat() << endl;
cout << n << " / " << sd.capacity() << " = " << d << endl;
在输出中我每次都等于0,sd.capacity()和n从不为0,因此所有时间n都低于sd.capacity值,d = 0但它应该永远不会为0.变量d除了0之外不包含任何东西。
答案 0 :(得分:0)
int
/ int
会导致int
。所以这确实存在问题。
您需要至少有一个操作数为float
。
因为,您告诉n
总是<
而不是sd.capacity()
,所以n/sd.capacity()
分区中的int
总是给出0。
我想你应该这样做,
d= (float)n / (float)sd.capacity();
这解决了吗?