【发布时间】:2021-12-28 14:11:53
【问题描述】:
在 Android 中使用 MP 图表。参考:https://github.com/PhilJay/MPAndroidChart
我必须在 BAR 图表上将 30.8351 显示为 30.83。
所以我发现我们可以使用 MP Chart 中的 Value Formater 来做到这一点。
所以我为它创建了如下类:
class MyValueFormatter : ValueFormatter() {
override fun getFormattedValue(
value: Float,
entry: Entry,
dataSetIndex: Int,
viewPortHandler: ViewPortHandler
): String {
var mFormat : DecimalFormat=DecimalFormat("###,###,##0.0")
return mFormat.format(value) + " $"
}
}
然后将其设置为我的图表数据集,如下所示:
val set1: BarDataSet
set1.setValueFormatter(MyValueFormatter())
但仍然在条形图上方显示 30.8351 而不是 30.83,即作为 BAR 的值。
可能是什么问题?
JEEL 回答后在下方编辑
我现在已经使用了如下的Value Formator:
set1.valueFormatter= object : ValueFormatter() {
override fun getFormattedValue(value: Float): String {
var mFormat : DecimalFormat = DecimalFormat("##.##")
return mFormat.format(value)
}
}
但是对于 -0.594 的值,我得到 -0.6 它应该只是 -0.59。
对于 1.234,它是 1.23(好的)
但是对于 1.235,它是 1.24(不可以) - 它不应该对值进行四舍五入。
可能是什么问题?
【问题讨论】:
-
尝试使用 DecimalFormat("#.##")
-
DecimalFormat没有任何问题。我自己尝试过,似乎返回了预期的结果。我不熟悉 MP Chart,但在我看来它不使用ValueFormatter -
@MohitDholakia 不工作。
-
@IvoBeckers 不工作
标签: android kotlin charts mpandroidchart formatter