Question: Most of the answers use Java (e.g. `String.format`) to get the job done, but I need a way to do this purely with Kotlin native to support multiplatform programming.

This means no using Java packages

Say a method like fun Float.toString(numOfDec: Int). I'd like the value to round e.g.:

`35.229938f.toString(1)` should return `35.2`

`35.899991f.toString(2)` should return `35.90`

Answer: 
If you want to return a float, but only to remove the trailing decimals use this:

```
fun Float.roundToDecimals(decimals: Int): Float {
    var dotAt = 1
    repeat(decimals) { dotAt *= 10 }
    val roundedValue = (this * dotAt).roundToInt()
    return (roundedValue / dotAt) + (roundedValue % dotAt).toFloat() / dotAt
}

```
Use this in your scenario

```
 try {
            if (!TextUtils.isDigitsOnly(st)) {
                val rounded = Math.round(st.toFloat())
                val toHex = BigInteger(rounded.toString(), 10)
                val t = toHex.toString(16)
                t.toString()
            } else {
                val toHex = BigInteger(st, 10)
                val t = toHex.toString(16)
                t.toString()
            }
        } catch (e: NumberFormatException) {
            error
        }

```