Как официальные документы заявляют:
Преобразование чисел с плавающей запятой в Short и Byte может привести к неожиданным результатам из-за узкого диапазона значений и меньшего размера переменной.
Поэтому, если вы хотите преобразовать в Byte
или Short
, вам нужно сделать два шага: сначала преобразовать в Int
(с toInt()
), а затем в целевой тип (например, toShort()
).
Например: myVar.toInt().toByte()