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

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")

}
时间: 2024-07-29 13:13:23

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

分享一篇文章C语言字节对齐问题(适用于C++)转载至http://blog.csdn.net/21aspnet/article/details/6729724

文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透. 一.概念    对齐跟数据在内存中的位置有关.如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐.比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的.   二.为什么要字节对齐   需要字节对齐的根本原因在于CPU访问数据的效率问题.假设上面整型变量的地址不是自然对齐,比如为0x00000002,则CPU如果取它的值的话需要访问两次内存,第一次取从0x000000

推荐一些C#相关的网站、资源和书籍 (转载自http://blog.csdn.net/chinacsharper/article/details/17514923)

一.网站 1.http://msdn.microsoft.com/zh-CN/ 微软的官方网站,C#程序员必去的地方.那里有API开发文档,还有各种代码.资源下载. 2.http://social.msdn.microsoft.com/Forums/zh-CN/home 微软msdn论坛.定位于微软技术的传播和技术问题的解决,是学习微软技术的好去处. 3.http://www.codeproject.com/ 国外著名的社区网站,面向世界的程序员.有很多不错的程序都可以从那里下载到. 4.htt

Oracle RAC 全局等待事件 gc current block busy 和 gc cr multi block request 说明--转载(http://blog.csdn.net/tianlesoftware/article/details/7777511)

一.RAC 全局等待事件说明 在RAC环境中,和全局调整缓存相关的最常见的等待事件是global cache cr request,global cache busy和equeue. 当一个进程访问需要一个或者多个块时,Oracle会首先检查自己的Cache是否存在该块,如果发现没有,就会先通过global cache赋予这些块共享访问的权限,然后再访问.假如,通过global cache发现这些块已经在另一个实例的Cache里面,那么这些块就会通过Cache Fusion,在节点之间直接传递,

C++ 运算符的重载(转载自http://blog.csdn.net/insistgogo/article/details/6626952)

(转载自http://blog.csdn.net/insistgogo/article/details/6626952) 什么是运算符的重载? 运算符与类结合,产生新的含义. 为什么要引入运算符重载? 作用:为了实现类的多态性(多态是指一个函数名有多种含义) 怎么实现运算符的重载? 方式:类的成员函数 或 友元函数(类外的普通函数) 规则:不能重载的运算符有 .  和 .* 和 ?: 和 ::  和 sizeof 友元函数和成员函数的使用场合:一般情况下,建议一元运算符使用成员函数,二元运算符使

Linux下socket编程(转载自http://blog.csdn.net/hguisu/article/details/7445768/)

Linux的SOCKET编程详解 1. 网络中进程之间如何通信 进 程通信的概念最初来源于单机系统.由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进 程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如 UNIX BSD有:管道(pipe).命名管道(named pipe)软中断信号(signal) UNIX system V有:消息(message).共享存储区(shared memory)和信号量(semaphore)等. 他们都仅限于用在本机进程之间通信.网间进

Win32消息循环机制等【转载】http://blog.csdn.net/u013777351/article/details/49522219

Dos的过程驱动与Windows的事件驱动 在讲本程序的消息循环之前,我想先谈一下Dos与Windows驱动机制的区别: DOS程序主要使用顺序的,过程驱动的程序设计方法.顺序的,过程驱动的程序有一个明显的开始,明显的过程及一个明显的结束,因此程序能直接控制程序事件或过程的顺序.虽然在顺序的过程驱动的程序中也有很多处理异常的方法,但这样的异常处理也仍然是顺序的,过程驱动的结构. 而Windows的驱动方式是事件驱动,就是不由事件的顺序来控制,而是由事件的发生来控制,所有的事件是无序的,所为一个程

xcode5.1.1安装iOS6.1模拟器 -----转载自http://blog.csdn.net/forestml2008/article/details/21714259

Xcode5.1默认不支持iOS5版本的模拟器开发调试,在OS X Mavericks(10.9.x)下默认只能支持iOS6.1及以上版本的模拟器,在OS X Mountain Lion(10.8.x)下默认只能支持iOS6.0及以上版本的模拟器进行开发和调试,在此条件之下的版本只能使用硬件设备进行开发调试.虽然现在低版本的iOS设备越来越少了,但是有时客户的需求可能会要求我们一定要兼容iOS5(或更低版本)及以上版本,如果我们手头找不到低版本硬件设备用于调试或者完全使用硬件设备而没有对应的模拟

C++ 虚函数表解析(转载自http://blog.csdn.net/haoel/article/details/1948051/)

前言 C++中的虚函数的作用主要是实现了多态的机制.关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数.这种技术可以让父类的指针有“多种形态”,这是一种泛型技术.所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法.比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议. 关于虚函数的使用方法,我在这里不做过多的阐述.大家可以看看相关的C++的书籍.在这篇文章中,我只想从虚函数的实现机制上面为大家 一个清晰

SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)转载(http://blog.csdn.net/zhshulin/article/details/23912615)

这两天需要用到MyBatis的代码自动生成的功能,由于MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生成器自动生成实体类.DAO接口和Mapping映射文件.这样可以省去很多的功夫,将生成的代码copy到项目工程中即可. 使用自动生成有很多方式,可以在eclipse中安装插件,但是以下将要介绍的这种方式我认为很轻松,最简单,不需要装插件,只需要下几个jar包即可,把它们放在一个目录下面. 生成代码需