В C/C++:Номер как 0.999999 округляется до 1
Мне нужно найти, если некоторые большие номера идеальные квадраты, но мой код находит номера, как 851659987045856130 быть действительным, когда +922854261,00000000487617621781778 фактический корень квадратный (в более высокая точность) и не является целым числом. Есть ли способ отсрочить округление для лучшей точности? Я знаю, что число, указанное выше, даже не имеет «идеальной квадратной последней цифры», но я хочу знать в целом, если можно проверить, действительно ли такое большое число является идеальным квадратом с разумным, но более высокая точность, чем стандартная.
Google для библиотек больших номеров, например https://en.wikipedia.org/wiki/GNU_Multiple_Precision_Arithmetic_Library –
@Richard: здесь не нужна библиотека bignum: это можно сделать полностью в арифметике 'uint64_t', если вы имел алгоритм вычисления квадратных корней. – Hurkyl
@ Хуркильный квадратный корень: начните с угадывания, соберите его, скорректируйте догадку, повторите до тех пор, пока не найдете или не получите решение –