码迷,mamicode.com
首页 > 编程语言 > 详细

Go语言库之strconv包(转载自--http://blog.csdn.net/alvine008/article/details/51283189)

时间:2017-11-16 15:23:54      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:float   函数   精度   大小   十六   表示   bool   定义   符号整型   

golang strconv.ParseInt 是将字符串转换为数字的函数

func ParseInt(s string, base int, bitSize int) (i int64, err error)

参数1 数字的字符串形式

参数2 数字字符串的进制 比如二进制 八进制 十进制 十六进制

参数3 返回结果的bit大小 也就是int8 int16 int32 int64

代码:

package main

import "fmt"
import "strconv"

func main() {
    /*
            由于将字符串转为其他数据类型可能会出错,strconv 包定义了两个 error 类型的变量:ErrRange 和 ErrSyntax。
            其中,ErrRange 表示值超过了类型能表示的最大范围,比如将 "128" 转为 int8 就会返回这个错误;ErrSyntax 表示语法错误,比如将 "" 转为 int 类型会返回这个错误。
        func syntaxError(fn, str string) *NumError {
            return &NumError{fn, str, ErrSyntax}
        }

        func rangeError(fn, str string) *NumError {
            return &NumError{fn, str, ErrRange}
        }
    */
    /* 字符串转为整数
    func ParseInt(s string, base int, bitSize int) (i int64, err error)
    func ParseUint(s string, base int, bitSize int) (n uint64, err error)
    func Atoi(s string) (i int, err error)
    */
    n, err := strconv.ParseInt("128", 10, 8)   //n对应byte8,err对应error
    if err != nil {
        fmt.Println(err)
    }
    fmt.Println(strconv.ParseInt("134", 10, 64))

    /*
        func FormatUint(i uint64, base int) string  // 无符号整型转字符串
        func FormatInt(i int64, base int) string    // 有符号整型转字符串
        func Itoa(i int) string
    */

    //还可以用 fmt.Sprintf("%d",i) 来转化 ,但是我们分别循环转换了10000次。Sprintf 的时间是 3.549761ms,而 Itoa 的时间是 848.208us,相差 4 倍多。

    /*  字符串和布尔值之间的转换
        // 接受 1, t, T, TRUE, true, True, 0, f, F, FALSE, false, False 等字符串;
        // 其他形式的字符串会返回错误        func ParseBool(str string) (value bool, err error)
        // 直接返回 "true" 或 "false"
        func FormatBool(b bool) string
        // 将 "true" 或 "false" append 到 dst 中
        // 这里用了一个 append 函数对于字符串的特殊形式:append(dst, "true"...)
        func AppendBool(dst []byte, b bool)
    */

    /*  字符串和浮点数之间的转换
        func ParseFloat(s string, bitSize int) (f float64, err error)
        func FormatFloat(f float64, fmt byte, prec, bitSize int) string
        func AppendFloat(dst []byte, f float64, fmt byte, prec int, bitSize int)
    */
    strconv.FormatFloat(1223.13252, ‘e‘, 3, 32) // 结果:1.223e+03
    strconv.FormatFloat(1223.13252, ‘g‘, 3, 32) // 结果:1.22e+03
    //由于浮点数有精度的问题,精度不一样,ParseFloat 和 FormatFloat 可能达不到互逆的效果。如:
    s := strconv.FormatFloat(1234.5678, ‘g‘, 6, 64)
    strconv.ParseFloat(s, 64)

    //如果要输出这样一句话:This is "studygolang.com" website. 该如何做?
    fmt.Println(`This is "studygolang.com" website`)
    fmt.Println("This is", strconv.Quote("studygolang.com"), "website")

}

 

 

Go语言库之strconv包(转载自--http://blog.csdn.net/alvine008/article/details/51283189)

标签:float   函数   精度   大小   十六   表示   bool   定义   符号整型   

原文地址:http://www.cnblogs.com/yxfeng/p/7844372.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!