Как преобразовать нотацию scientifi c в big.Int? - PullRequest
0 голосов
/ 04 марта 2020

В golang У меня есть большое число в строке вроде этого: "4.49955000449955e + 24".

Как я могу преобразовать это в большое.Int?

1 Ответ

3 голосов
/ 04 марта 2020

используйте big.ParseFloat , чтобы получить big.Float, а затем метод Int , чтобы преобразовать его в big.Int:

flt, _, err := big.ParseFloat(input, 10, 0, big.ToNearestEven)
if err != nil {
    /* handle a parsing error here */
}
var i = new(big.Int)
i, acc := flt.Int(i)

посмотрите на Go Playground .

Установив аргумент prec на ParseFloat, вы можете контролировать точность промежуточного числа с плавающей запятой - для вашей точности требуется не менее 72 бит Пример ввода для точного вывода (до значения, заканчивающегося десятью нулями), но значение по умолчанию, если вы передаете 0, составляет 64 бита.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...