Вывод Json String округляет значение - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть функция kotlin, которая получает значение из ответа JSON, но записи в приведенном ниже коде округляют число, а не получают двойное или оригинальное значение JSON.Я изменил .tofloat на .toDouble в коде, но я получаю ошибку в коде.Любая помощь приветствуется.

Ввод

var    test= "[{"date":"2018-12-12","amount":"10.65"}

Код JSON

    val jsonStringArray = test.toString()
    val entries = ArrayList<BarEntry>()
    val labels = ArrayList<String>()
    val arr = JSONArray(jsonStringArray)
    for (i in 0 until arr.length()) {
        entries.add(BarEntry(arr.getJSONObject(i).getString("amount").toFloat(), i))
        labels.add(arr.getJSONObject(i).getString("date"))
    }
  println("Entries value" + entries)
                val barDataSet = BarDataSet(entries, "Test")
                val data = BarData(labels, barDataSet)
                barChart.data = data 
                barChart.setValueTextSize(10f)
                **Chart is Rounding off the value in the display**

Результат вывода 10,7

Ожидаемый выход 10,65

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Попробуйте округлить до двух десятичных значений значения вашего объекта JSON

Ответ 1:

val amountValue:Double = getJSONObject(i).getString("amount").toDouble()
val twoDigitValue:Double = String.format("%.2f", amountValue).toDouble()

Ответ 2:

val amountValue:Double = getJSONObject(i).getString("amount").toDouble()
val twoDigitValue:Double = Math.round(amountValue * 100.0) / 100.0
0 голосов
/ 21 декабря 2018

Я думаю, что это дает точную строку, как в JSON

String str_amount = getJSONObject(i).getString("amount"); 
...