-4
            String loanamount = edtamount.getText().toString();
            double doubleloanamount = Double.parseDouble(loanamount);
            String strloanamount = Double.toString(doubleloanamount);

            Log.v("doubleloanamout", strloanamount);

            String years = edtyears.getText().toString();

            double doubleyears = Double.parseDouble(years) * 12;

            String strpaymentdoubleyears =   Double.toString(doubleyears);
            Log.v("doubleyears", strpaymentdoubleyears);

            double inrate = doubleloanamount * 11 / 100;
            double monthlyrate = inrate / 12;
            double roundmonthlyrate = Math.round(monthlyrate);
            String inratefordemo = Double.toString(roundmonthlyrate);


            double Payment = (doubleloanamount
                    * Math.pow(( roundmonthlyrate) + 1, (doubleyears)) *  roundmonthlyrate)
                    / (Math.pow( roundmonthlyrate + 1, (doubleyears)) - 1);



            double roundpayment = Math.round(Payment);
            String strpayment = Double.toString(roundpayment);
            Log.v("payment", strpayment);
            edtemimonth.setText(strpayment);

上記のコードを使用して EMI を計算していますが、値が 0 と表示されます。

4

2 に答える 2

6

結果を整数に型キャストしているため、0.55 のような小数部分があり、型キャストのために小数部分が削除され、0 のみが返された可能性があります。Payment 変数を double に変更してみてください。0 にdoubleloanamount等しくないことも確認してください。

于 2013-01-22T12:04:31.230 に答える
0

intRate を float にする .... 支払いの計算中 intRate * X は、 intRate 自体が 0 の場合、 0 を返します。intRate = x * 11/100 と書きましたが、1 未満の場合は 0 になります。

また、mnthRate を float にします

于 2013-01-22T12:08:47.280 に答える