1

私のコードは単純に見えますが、何が問題なのかわかりません。次のようなコードを作成すると:

tvResult.setText(sum+ "RUB");

正しい数値を示しています。しかし、次のような IF ステートメントを追加しようとすると:

if(sum>=114000) {
                    tvResult.setText(sum + " RUB");
                }

合計が 1000000 の場合、奇妙な数字 1111111.0 が表示されます。アドバイスが必要です =) よろしくお願いします

XML コードは次のとおりです。

<TextView
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:id="@+id/tvCash"
        android:layout_below="@id/tvCalculate"
        android:hint="@string/cash_money"
        android:background="@drawable/zakat_red"
        android:layout_marginTop="20dp"/>

    <EditText
        android:layout_width="130dp"
        android:layout_height="40dp"
        android:id="@+id/etCash"
       android:inputType="numberDecimal"
        android:layout_above="@+id/tvBank"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:hint="@string/hint_zakat"
        android:gravity="end"
        android:imeOptions="actionDone"/>

そして Java コード:

TextWatcher twCash=new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                tvCash.setBackgroundResource(R.drawable.zakat_green);
                sum+=Float.valueOf(etCash.getText().toString());
                if(sum>=114000) {
                    tvResult.setText(sum + " RUB");
                }
            }
        };
4

2 に答える 2

0

合計変数が浮動小数点数か何かであるため、「.0」が発生する可能性が最も高いです。変数 sum に int を使用するか、表示するときに int にキャストする必要があります。これはうまくいくはずです。

if (sum >= 114000) {
    tvResult.setText((int)sum + " RUB");
}

合計にする必要があり、小数点以下の値がゼロでない場合にのみ表示する場合は、値を解析して必要なものを返すメソッドを作成する必要があります。

于 2016-03-09T21:40:38.223 に答える