Создать накопительный массив с плавающей точкой - PullRequest
0 голосов
/ 22 июня 2019

Мне нужно получить кумулятивные значения последовательности отрицательных и положительных значений с плавающей запятой и вставить в MPAndroidChart запись:

private ArrayList<Entry> chartValues;

public void getTransactions() {
        (...)
                for (int i = 0; i < info.length(); i++) {
                    JSONObject objInfo = info.getJSONObject(i);

                    (...)

                    int transaction_type = objInfo.getInt("transaction_type");
                    float transaction_amount;
                    if(transaction_type == 0){
                        transaction_amount = -(float) objInfo.getDouble("transaction_amount");
                    }else{
                        transaction_amount = (float) objInfo.getDouble("transaction_amount");

                    }

                    chartValues.add(new Entry(i, transaction_amount));

                }
        (...)
}

private void setData(int count, float range) {

    LineDataSet set1;

    if (chart.getData() != null &&
            chart.getData().getDataSetCount() > 0) {
        set1 = (LineDataSet) chart.getData().getDataSetByIndex(0);
        set1.setValues(chartValues);
        chart.getData().notifyDataChanged();
        chart.notifyDataSetChanged();
    } else {
    (...)
}

chartValues возвращает {1,00, 2,00, -3,00, 4,00, 5,00 ...}, и мне нужно вернуть {1,00, 3,00, 0,00, 4,00, 9,00}. Любая идея? Спасибо!

1 Ответ

1 голос
/ 22 июня 2019

Кажется, вам нужна дополнительная переменная, чтобы сохранить общую сумму предметов:

public void getTransactions() {
        (...)
                float sum = 0.0f;
                for (int i = 0; i < info.length(); i++) {
                    JSONObject objInfo = info.getJSONObject(i);
...

И использовать ее:

              sum += transaction_amount;
              chartValues.add(new Entry(i, sum));

                }
        (...)
}
...