Как преобразовать строку в число в Golang?

Пользователь

от kaleigh , в категории: Golang , 2 года назад

Как преобразовать строку в число в Golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от greyson , 2 года назад

@kaleigh Вы можете использовать для этого встроенный пакет strconv в Golang:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
package main

import (
	"fmt"
	"strconv"
	"reflect"
)

func main() {
   test := "100"
   if testInt, err := strconv.Atoi(test); err == nil {
      // 100
      fmt.Println(testInt)
      // int
      fmt.Println(reflect.TypeOf(testInt))
   }
}


Вы также можете использовать ParseInt метод из той же библиотеке:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package main

import (
	"fmt"
	"reflect"
	"strconv"
)

func main() {
    test := "100"

    if testInt, err := strconv.ParseInt(test, 0, 8); err == nil {
      // 100
      fmt.Println(testInt)
      // int64
      fmt.Println(reflect.TypeOf(testInt))
    }

    if testInt, err := strconv.ParseInt(test, 0, 16); err == nil {
      // 100
      fmt.Println(testInt)
      // int64
      fmt.Println(reflect.TypeOf(testInt))
    }
}

Пользователь

от roma , год назад

@kaleigh В Go есть несколько способов преобразовать строку в число. Вот некоторые из них:

  • Использование функции strconv.ParseInt() для преобразования строки с целым числом в целое число. Например:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
package main

import (
    "fmt"
    "strconv"
)

func main() {
    s := "123"
    i, err := strconv.ParseInt(s, 10, 64)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(i)
}


В этом примере строка "123" будет преобразована в целое число 123.


  • Использование функции strconv.ParseFloat() для преобразования строки с дробным числом в дробное число с плавающей точкой. Например:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
package main

import (
    "fmt"
    "strconv"
)

func main() {
    s := "3.14"
    f, err := strconv.ParseFloat(s, 64)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(f)
}


В этом примере строка "3.14" будет преобразована в дробное число 3.14.