如何从 Float 中删除 .0

How do I remove .0 from Float

代码如下:

 private fun setData(playerData: TreeMap<String, String>) {
    val values = ArrayList<Entry>()
    val graphData = java.util.ArrayList<Float>()
    for (value in playerData.values) {
        graphData.add(value.toInt().toFloat()) # <-- converting here
    }
    graphData.reverse()

    for (i in 0 until graphData.size) {

        val itemi = i.toFloat()
        values.add(
            Entry(
                itemi, #<-- entering here directly
                graphData[i],
                resources.getDrawable(R.drawable.ic_cricket)
            )
        )
    }

    val set1: LineDataSet
    set1 = LineDataSet(values, "Player Form Graph")
    val dataSets = ArrayList<ILineDataSet>()
   // Possible Solution?
    val valueFormatter = IValueFormatter { value, _, _, _ ->
        value.toInt().toString()
    }
    set1.valueFormatter = valueFormatter as ValueFormatter?
    dataSets.add(set1)
    val data = LineData(dataSets)
 // set data
    binding.chart1.data = data

}

错误:java.lang.ClassCastException: <id>DemoFragment$setData$valueFormatter cannot be cast to com.github.mikephil.charting.formatter.ValueFormatter

问题是有些值在没有 .0 的情况下也有效,有些值在有 .0 的情况下有效

使用:

DecimalFormat df = new DecimalFormat( "0" );

这是我用过的:

set1.valueFormatter = object : ValueFormatter() {
            override fun getFormattedValue(value: Float): String {
                return value.toInt().toString()
            }
        }

如果值也有可能以小数形式出现,请说 [1, 1.2, 3, 3.5] 是您的集合,然后选择:

set1.valueFormatter = object : ValueFormatter() {
            override fun getFormattedValue(value: Float): String {
                return DecimalFormat("#.#").format(value)
            }
        }

在上面的例子中 #.# 可以替换为 #.## 如果你想显示最多 2 位小数等等。