如何使用 MpAndroidChart 库向图表条目添加十进制值?

问题描述

我正在尝试使用 MPAndroidChart 库 在 Android 中创建折线图,作为条目,我有 1200.10、1300.70 等值,但在我的图表上,这些值是四舍五入的( 1200,1301),我想显示原始值。我怎样才能做到这一点?我尝试了不同的解决方案,但仍无法解决问题。我正在使用 Kotlin 语言。谢谢!

 for (item in reversedCashList) {
        if (i <= daysNmb) {
            var cashValue: String = transformDataForChart(item.value!!)
            dataValsEntries.add(Entry(i,cashValue.toFloat()))
            i++
        }
 }

此外,我使用这个格式化程序类来格式化我的值,因为初始格式类似于 120.200,10,我将它们更改为 120200.10 但此值显示为 120200。我的格式化程序类:

private fun transformDataForChart(totalValue: String): String {
    return if (totalValue.contains(".")) {
        val test = totalValue.replace(".","")
        test.replace(",",".")
    } else {
        totalValue.replace(",".")
    }
}

解决方法

您可以尝试使用 BigDecimal,例如 BigDecimal.valueOf(X).setScale(decimalPlace(usually 2),BigDecimal.ROUND_HALF_UP).floatValue()

这个想法是 float 不能像 Double 那样包含这么多值,我也遇到过这个问题,我不得不将所有内容都更改为 Double 以使其更易于维护......因此我不要认为这是一种以浮点格式保留您需要的所有内容的直接方法。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...