尝试使用此代码返回通常应返回 20 到 30 作为 s
的 value
int s = sentences / wordcount * 100;
sentences
和 wordcount
都以 values 的形式出现,它们都不应该是 0。它们的结果会很小(0.20 到 0.30),所以认为这可能与此有关吗?
回答1
尝试将除法明确地转换为浮点(FP)value,这应该可以防止结果
sentences / wordcount
从被击倒到零。您应该只需要将一个转换为 FP value。尝试
int s = (double) sentences / wordcount * 100
回答2
我的猜测是 sentences
和 wordcount
是 int
s。结果,您有整数除法,在乘以 100 之前四舍五入为整数。请注意,整数除法不是可交换的。
一个简单的解决方法是在除以字数之前将乘法乘以 100。
int s = sentences * 100 / wordcount;
虽然更好的解决方案是使用 float
或 double
。
float s = (float)sentence / wordcount * 100;