当答案不应该为 0 时,值总是返回为 0
value always coming back as 0 when the answer should not be 0
尝试取回通常应该 return 20 到 30 的值,因为 s
使用此代码
int s = sentences / wordcount * 100;
sentences
和 wordcount
都作为它们不应该为 0 的值出现。它们的结果会很小(0.20 到 0.30)所以认为这可能与那个?
我的猜测是 sentences
和 wordcount
是 int
。结果,您的整数除法在 乘以 100 之前四舍五入为整数。请注意,整数除法不可交换。
一个简单的解决方法是在除以字数之前先乘以 100 。
int s = sentences * 100 / wordcount;
虽然更好的解决方案是使用 float
或 double
。
float s = (float)sentence / wordcount * 100;
尝试明确地将除法转换为浮点 (FP) 值,这应该可以防止
sentences / wordcount
从跌到零。你应该只需要将一个作为 FP 值。
尝试
int s = (double) sentences / wordcount * 100
尝试取回通常应该 return 20 到 30 的值,因为 s
使用此代码
int s = sentences / wordcount * 100;
sentences
和 wordcount
都作为它们不应该为 0 的值出现。它们的结果会很小(0.20 到 0.30)所以认为这可能与那个?
我的猜测是 sentences
和 wordcount
是 int
。结果,您的整数除法在 乘以 100 之前四舍五入为整数。请注意,整数除法不可交换。
一个简单的解决方法是在除以字数之前先乘以 100 。
int s = sentences * 100 / wordcount;
虽然更好的解决方案是使用 float
或 double
。
float s = (float)sentence / wordcount * 100;
尝试明确地将除法转换为浮点 (FP) 值,这应该可以防止
sentences / wordcount
从跌到零。你应该只需要将一个作为 FP 值。 尝试
int s = (double) sentences / wordcount * 100