Я пытаюсь преобразовать строку в целое число, а затем вычислить ее журнал. Мой первый подход состоял в том, чтобы преобразовать строку с использованием библиотеки strconv
, но я получил ошибку о длине строки для преобразования.
После этого я использовал библиотеку math/big
, которая работала нормально. Теперь я не могу применить math.Log()
к приведенному большому целому числу.
Код:
package main
import (
"fmt"
"math"
"math/big"
)
func main() {
bb := "11948904162160164791281681976941230184120142151411311314211115130161285142991119211447"
bi := big.NewInt(0)
if _, ok := bi.SetString(bb, 10); ok {
fmt.Println(math.Log(bi))
} else {
fmt.Printf("error parsing line %#v\n", bb)
}
}
Ошибка:
cannot use bi (type *big.Int) as type float64 in argument to math.Log