具有自定义步长的 Kotlin BigDecimal 范围

Kotlin BigDecimal range with custom step

我有一个字符串“1;5;0.5”,它表示 BigDecimal 范围 1..5,步长 0.5。所以,我必须将它转换成一个科特林范围,并计算元素。做这样的事情:

val str = "1;5;0.5"
var (from, to, st) = str.split(";").map { it.toBigDecimal() }
val numbersWithStep = (from..to step st).count()

但是没用。它仅适用于 int 数字。有没有比while循环更简单的计数元素的方法?

你是说,像一个非常简单的数学?

(to - from) / st + 1

请注意除法必须向下舍入。 BigDecimals 的一个工作示例是:

(to - from).divideToIntegralValue(st) + BigDecimal.ONE

如果是这种情况,您可能需要检查 to < from