我有一个数字范围内的值(例如0..100),我想将其转换为另一个范围(例如 to 0..9)。所以结果将是:
50 -> 4或者100 -> 9……
Kotlin 中是否有任何方法可以在这方面帮助我?
计算原始范围内数字的比率。将其乘以第二个范围。
fun convert(number: Int, original: IntRange, target: IntRange): Int {
val ratio = number.toFloat() / (original.endInclusive - original.start)
return (ratio * (target.endInclusive - target.start)).toInt()
}
Run Code Online (Sandbox Code Playgroud)
作为扩展函数
fun IntRange.convert(number: Int, target: IntRange): Int {
val ratio = number.toFloat() / (endInclusive - start)
return (ratio * (target.endInclusive - target.start)).toInt()
}
val result = (0..100).convert(50, 0..9)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
479 次 |
| 最近记录: |