Каждый тип чисел (int, long, double, float) имеет ограничения.Для вашего длинного 64-битного (потому что ваше устройство 64-битного) числа верхний предел составляет: 9 223 372 036 854 775 807 (см. Здесь: https://en.wikipedia.org/wiki/9,223,372,036,854,775,807)
В вашем случае 51,74 * 1 000 000 000 000 000 000 =
51,740,000,000,000,000,000
ХотяДлинный 64 бит имеет максимум только
9,223,372,036,854,775,807
Таким образом, переполнение происходит при значениях 9,223,372,036,854,775,808 и выше. Это то, во что оценивается ваш расчет.
Также следует отметить, чтото, что вы делаете, также вызовет проблемы, если вы работаете только на 64-битной большой дальности, потому что, что происходит, когда ваше приложение работает на 32-битной (например, iPhone 5c или ниже)?
Как правило, плохая идея использовать большие числа,если вы не занимаетесь сложной математикой. Если точность чисел не является критической, то вам следует подумать об упрощении числа, например, 51 740 Г (G = Гига) и т. д.