умножить на 10 в степени точность и сделать из полученного числа Int, а вообще можно без нахождения разница, а остатком от деления на 1, так будет точнее
Примерно так можно перевернуть. Альтернатива - разложить через деление на модуль в массив чисел и сравнивать его, но в вашем случае работа со строкой кажется более логичной, поскольку палиндром все же про текст, а не про свойства числа.
если без проверок на переполнение, то можно так, например: func f(_ a: Int) -> Int { var r = 0 var n = a while n > 0 { r = r * 10 + n % 10 n = n / 10 } return r } f(12345) // 54321 f(987654) // 456789