Примитивы ржавчины имеют фиксированный размер.Таким образом, существует конечное число уникальных значений, которые они могут хранить, не более 2 ^ n, где n - количество битов в типе.В случае целочисленных типов эти битовые комбинации назначаются каждому последующему целому числу вплоть до количества значений, которые они могут представлять, начиная с 0. Кроме того, в случае целых чисел со знаком половина этих шаблонов присваивается отрицательным числам.
С учетом этих спецификаций максимальное значение, которое может хранить i64
, составляет 2 ^ 63-1 (это число, которое вы напечатали).Наибольшее целое число со знаком i128
может содержать значение до 2 ^ 127-1.И если вы используете u128
, вы можете получить до 2 ^ 128-1.Это самое большое значение, которое может содержать примитивный целочисленный тип в Rust, значительно меньше, чем ваш запрос для 99e100.
Если вы хотите большие целые числа, вам нужно использовать либо больший тип фиксированного размера, либо неограниченный тип, который растет по мере необходимости.Ни один из них не является частью стандарта Rust.Таким образом, вам придется либо написать свою собственную реализацию, либо использовать чужую, такую как номер ящика .