float percentrelation = Individualrelatonshipdegree / relationshipdegree * 100;
この単純な操作は、Individualrelationshipdegree変数の値が19で、relationshipdegreeが35のときに0を返しますが、それでも0を返します。この問題を理解していない。どんな助けでもありがたいです。
あなたは整数除算をしています。試す
float percentrelation =
1.0f * Individualrelatonshipdegree / relationshipdegree * 100;
計算順序を見てください。19を35で除算したいので、0です。次に0と100を掛けます。これも0です。
したがって、型キャストによってこの式の最初の変数をfloatにすることができます。
float percentrelation = (float)Individualrelatonshipdegree / relationshipdegree * 100;
UPD型キャストの瞬間を説明する必要があります。計算順序は左から右です。また、integer(int、byte、long longなど)およびfloat(float、doubleなど)オペランドを使用した操作では、どちらもfloat型に型キャストされるという規則があります。そのため、最初のオペランドに1つの型キャストが必要です。そのため、1.0f*を使用した別の回答your expression
も正常に機能します。ほんの2つの少し異なる方法。
2つの変数は整数ですか?はいの場合は、最初にそれらをキャストすることをお勧めします。
float percentrelation = (float) Individualrelatonshipdegree / (float) relationshipdegree * 100;
また、floatはあまり正確ではないことに注意してください。10進数のisnteadの使用を検討してください。