Необходимо иметь возможность конвертировать 00000924843571390729101 или 2.71000000000000000E+02 в Long Expect 2.710000000000000000E+02, чтобы получить 271
funky results for this: 00000924843571390729101 became 924843571390729088
val signNumber = "00000924843571390729101"
val castnum = signNumber.toDouble.toLong.toString
Первое преобразование ниже работает для 2.710000000000000000E+02, второе работает для 00000924843571390729101
val castnum = signNumber.toDouble.toLong.toString
val castnum = signNumber.replaceAll("\\.[0-9]*$", "").toLong.toString
Не хотите сохранять десятичные знаки, поэтому не используйте java.math.BigDecimal
Входная строка может иметь вид 9028456928343.0000, и в этом случае нужно 9028456928343 в качестве длинного