Ошибки с общей суммой, неправильным расчетом и форматом - PullRequest
0 голосов
/ 01 ноября 2018

Могу ли я знать, в чем проблема с этим? Вместо этого должно быть «5555555556». См. Общая сумма НЕ ПРАВИЛЬНО.

enter image description here

Мой код уже написан неправильно? Вот мой КОД

//show total amount
        try {
            SQLiteDatabase db = mSQLiteHelper.getReadableDatabase();
            Cursor cursor = db.rawQuery("SELECT SUM (Amount) from Donation_Details WHERE strftime('%d %m %Y',CreatedDate) = strftime('%d %m %Y',date('now'))", null);
            if (cursor.moveToFirst()) {

                int sum = cursor.getInt(0);
                DecimalFormat formatter = new DecimalFormat("#,###,###");
                String yourFormattedString = formatter.format(sum);

                total_Amount.setText("RM " + yourFormattedString);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

И это не может показать десятичную дробь, если я написал "555555.55". Он будет показывать только цифры переднего плана. Кто-нибудь может мне помочь?

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Измените int на double переменной суммы, а также измените DecimalFormat, как показано ниже,

try {
    SQLiteDatabase db = mSQLiteHelper.getReadableDatabase();
    Cursor cursor = db.rawQuery("SELECT SUM (Amount) from Donation_Details WHERE strftime('%d %m %Y',CreatedDate) = strftime('%d %m %Y',date('now'))", null);
    if (cursor.moveToFirst()) {
        double sum = cursor.getDouble(0);
        DecimalFormat formatter = new DecimalFormat("#,###,###,###.00");
        String yourFormattedString = formatter.format(sum);
        total_Amount.setText("RM " + yourFormattedString);
    }
} catch (Exception e) {
    e.printStackTrace();
}
0 голосов
/ 01 ноября 2018

Решение состоит в том, чтобы изменить

int

до

double

и измените свой десятичный формат на

DecimalFormat formatter = new DecimalFormat("#,###,###,###");
...