int
будет содержать только целые числа, так что вы видите поведение, которое вы просите.
59.313732591172 * 1E6 = 59313732.591172
(int)59313732.591172 = 59313732
Если вам нужно сохранить больше цифр, либо продолжайте использовать double, конвертируйте в long
вместо int
и умножьте на большее число (например, 1E12)
Так работает приведение числа с плавающей точкой к int / long на любом типизированном языке. Здесь это функция Java, и ничего особенного для Android.