使用 float 创建一个累积数组

Create a cumulative array with float

我需要获取一系列负浮点值和正浮点值的累加值并放入 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 returns {1.00, 2.00, -3.00, 4.00, 5.00 ...} 我需要 return {1.00, 3.00, 0.00, 4.00, 9.00 }.任何的想法?谢谢!

您似乎需要额外的变量来保持项目的总和:

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));

                }
        (...)
}