0
 Cursor ca2 = dbh1.getReadableDatabase().query(DatabaseHelper.TABLE_NAME, null, null,     null, null, null, null);
 int countTotal = ca2.getCount();
 Cursor ca1 = dbh1.getReadableDatabase().query(DatabaseHelper.TABLE_NAME, null, DatabaseHelper.VALUE6 + "='Automatic'", null, null, null, null);
 int count = ca1.getCount();

 int percentTrans = ((count/countTotal)*100);
 statText=(EditText)findViewById(R.id.etext3);
 statText.setText(Integer.toString(percentTrans));

 Toast toast=Toast.makeText(this, Integer.toString(percentTrans), 2000);
 toast.show();

こんにちは、私はここでばかげた問題を抱えています。countTotal で count を割って 100 を掛けることでパーセンテージを求めます。percentTrans は本質的に整数であり、この値は、percentTrans を文字列に変換する必要がある編集テキストに渡されます。count は 2 で countTotal は 3 です。しかし、結果として 0 を取得します。何か案は?

4

3 に答える 3

4

count/countTotalintありすぎです。(int)(2/3)_0

次のように書きます(count*100/countTotal)

于 2012-04-04T17:39:05.767 に答える
1

整数演算は電卓を使用するようなものではありません - 代わりにこれを行ってください:

int percentTrans = Math.round(count * 100.0f / countTotal);

これにより、すべての計算が浮動小数点数として行われ (100.0f を浮動小数点数に指定すると暗黙的に行われます)、最後に適切な整数値に丸められます。

于 2012-04-04T17:44:32.797 に答える
1

jusは上に示した答えとして計算を行い、次のように編集テキストに値を入れます:

statText.setText(String.valueOf(percentTrans));
于 2012-04-04T17:48:27.510 に答える