float percentrelation = Individualrelatonshipdegree / relationshipdegree * 100;
这个简单的操作返回0,而Individualrelationshipdegree变量中的值是19,而relationshipdegree中的值是35.但它仍然返回0.不明白这个问题。任何帮助将不胜感激。
答案 0 :(得分:4)
你正在进行整数除法。尝试
float percentrelation =
1.0f * Individualrelatonshipdegree / relationshipdegree * 100;
答案 1 :(得分:4)
只需查看计算顺序即可。你想将19除以35.所以它是0.然后乘以0和100.它也是0 因此,您可以通过类型转换尝试为此表达式创建第一个变量float:
float percentrelation = (float)Individualrelatonshipdegree / relationshipdegree * 100;
UPD 需要解释类型转换时刻。计算顺序是从左到右。我们有一个规则,在操作中使用整数(int,byte,long long等)和float(float,double等)操作数,它们都是类型转换为float类型。这就是为什么我们只需要在第一个操作数上进行一次类型转换。这就是为什么1.0f * your expression
的另一个答案也可以正常工作。只是两种不同的方式。
答案 2 :(得分:3)
这两个变量是否整数?如果是,您可能希望先抛出它们。
float percentrelation = (float) Individualrelatonshipdegree / (float) relationshipdegree * 100;
另外,请注意浮动不是很精确。考虑使用decimal isntead。
答案 3 :(得分:0)