在逗号后切割不同小数位的复杂函数
Complex function to cut a different decimal places after comma
程序的输入数据是 JSON,具有 BigDecimal 值,如本例所示:345.0197
我有 2 个问题:
- 有些字段必须在逗号后显示不同的位数:
- 逗号后的 3 位数字如:345.019
- 2 位数字,如:345.01
- 1 位数字,如:345.0
- 逗号前的整数必须大于逗号后的小数。喜欢这张图片:
我需要 Java 或 Kotlin 中的函数,它可以 return 根据逗号(3、2 或 1)后所需的位数和该小数点与整数分隔的小数点进行切割,即我可以在最终结果中应用不同的布局样式。
最好的方法是什么?
也许是这样的?
var decimal_places = 3
val value = 745.49.toBigDecimal()
val part_a = value.toBigInteger()
val part_b = value.subtract(BigDecimal(part_a)).toString().drop(2).take(decimal_places)
或者更数学的方式:
val part_a = value.toBigInteger()
val part_b = (value.subtract(BigDecimal(part_a)).toDouble() * Math.pow(10.toDouble(), decimal_places.toDouble())).toInt()
程序的输入数据是 JSON,具有 BigDecimal 值,如本例所示:345.0197 我有 2 个问题:
- 有些字段必须在逗号后显示不同的位数:
- 逗号后的 3 位数字如:345.019
- 2 位数字,如:345.01
- 1 位数字,如:345.0
- 逗号前的整数必须大于逗号后的小数。喜欢这张图片:
我需要 Java 或 Kotlin 中的函数,它可以 return 根据逗号(3、2 或 1)后所需的位数和该小数点与整数分隔的小数点进行切割,即我可以在最终结果中应用不同的布局样式。
最好的方法是什么?
也许是这样的?
var decimal_places = 3
val value = 745.49.toBigDecimal()
val part_a = value.toBigInteger()
val part_b = value.subtract(BigDecimal(part_a)).toString().drop(2).take(decimal_places)
或者更数学的方式:
val part_a = value.toBigInteger()
val part_b = (value.subtract(BigDecimal(part_a)).toDouble() * Math.pow(10.toDouble(), decimal_places.toDouble())).toInt()