Есть у меня есть число - 1253054122093351682, я его делю на 65, и получаю 19277755724513104.
Проверил на калькуляторе, а у меня там не то получилось - 19277755724513102,8. Я еще использую floor. То есть, у меня в коде число на 2 больше чем должно быть. Как такую проблему можно исправить?
long long int nextLineNumber = floor(lineNumber / table.size()); // 19 277 755 724 513 104
// а должно быть 19 277 755 724 513 102
Уберите floor().
У вас и так тут lineNumber / table.size() целочисленное деление (с отбрасыванием дробной части).
С floor же происходит конвертация в double с потерей точности, потом снова в long long.