问题描述
我正在尝试使用 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 以使其更易于维护......因此我不要认为这是一种以浮点格式保留您需要的所有内容的直接方法。