質問
2つの整数フィールドを含むテーブルを持つデータベースがあります。
パーセンテージ(FieldA /(Fielda + FieldB))を取得しようとすると、値は0です。
double percentage = fieldA+fieldB // WORKS; 5+5=10
double percentage = fieldA / (fieldA+fieldB) // DOES NOT WORK; 5+5=0
.
だからここでの問題は何ですか?ありがとう。
解決
fieldA / (fieldA+fieldB)
を実行すると、5/10が得られます。これは、整数が0に切り捨てられるため、結果として0.5が必要な場合は、二重除算を実行する必要があります。
つまり、次のようなものです:
ジェネラコディセタグプレ
他のヒント
私はfieldA
とfieldB
を整数しますか?もしそうであれば、式の左側にあるものであっても、2つの整数が整数になることに注意する必要があります。
では、fieldA
によって(fieldA+fieldB)
を分割すると、値<1がゼロになります。
FIELDAとFIELDBは整数であるため、General Divisionの整数分割、この場合はGeneral DivisiCodeを使用することを意味し、整数分割はfieldA / (fieldA+fieldB)
を使用することを意味します。
あなたはできるだけすることができます:
double percentage = (double)fieldA / (fieldA+fieldB);
. 操作を適用する前にフィールドを2倍にキャストする必要があるかもしれません
これを試してみてください:二重パーセント=(ダブル)フィールド/(ダブル)(フィールドア+フィールドB)
両方のフィールドが整数の場合、2つの整数を加算すると整数になります。 これを試してください
フロート結果=(フロート)((A * 100)/(B + A));
回答:結果= 50.0
所属していません StackOverflow