strconv实现了go中基本数据类型与string之间的转换。

How to use in go

go doc:https://godoc.org/strconv

import "strconv"

int ↔ string

func Atoi(s string) (int, error)

  将string类型的s转换为十进制int类型,同时会返回error。

func Itoa(i int) string

  将十进制i转换为string类型。

// int ↔ string
stringValue := "150"
intValue, err := strconv.Atoi(stringValue)
if err != nil {
fmt.Printf("Failed to conv string to int: %s\n", err)
} else {
fmt.Printf("%T %s conv to %T %d\n", stringValue, stringValue, intValue, intValue) //string 150 conv to int 150
}
stringValue = strconv.Itoa(intValue)
fmt.Printf("%T %d conv to %T %s\n", intValue, intValue, stringValue, stringValue) //int 150 conv to string 150

int64 ↔ string

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

  将string类型的s转换为base进制下bitSize比特的i,base的取值范围是{0}∪[2,36],bitSize的取值范围是[0,64]。当base=0时,字符串的前缀表示基数,比如“0x”表示十六进制,“0”表示八进制,其他表示十进制;当base=1 || base<0 || base>36,返回error。bitSize指定了整型的位数,bitSize=0,8,16,32和64分别对应了int,int8,int16,int32和int64。

func FormatInt(i int64, base int) string

  将i转换为base进制下的string类型,base的的取值范围是[2,36]。

// int64 ↔ string
int64Value, err := strconv.ParseInt(stringValue, 10, 64)
if err != nil {
fmt.Printf("Failed to conv string to int64: %s\n", err)
} else {
fmt.Printf("%T %s conv to %T %d\n", stringValue, stringValue, int64Value, int64Value) //string 150 conv to int64 150
}
stringValue = strconv.FormatInt(int64Value, 10)
fmt.Printf("%T %d conv to %T %s\n", int64Value, int64Value, stringValue, stringValue) //int64 150 conv to string 150

uint64 ↔ string

func ParseUint(s string, base int, bitSize int) (uint64, error)

  ParseUint的用法与ParseInt相同,返回的结果是uint64类型。

func FormatUint(i uint64, base int) string

  将uint64类型按照给定base转换为string类型,base的取值范围是[2,36]。

// uint64 ↔ string
uint64Value, err := strconv.ParseUint(stringValue, 10, 64)
if err != nil {
fmt.Printf("Failed to conv string to uint64: %s\n", err)
} else {
fmt.Printf("%T %s conv to %T %d\n", stringValue, stringValue, uint64Value, uint64Value) //string 150 conv to uint64 150
}
stringValue = strconv.FormatUint(uint64Value, 10)
fmt.Printf("%T %d conv to %T %s\n", uint64Value, uint64Value, stringValue, stringValue) //uint64 150 conv to string 150

float64 ↔ string

func ParseFloat(s string, bitSize int) (float64, error)

  ParseFloat将字符串s转换为浮点数,精度由bitSize指定,bitSize=32转换为float32,64转换为float64。 当bitSize = 32时,结果仍然是float64类型,但不改变值就可以转换为float32。

func FormatFloat(f float64, fmt byte, prec, bitSize int) string

  FormatFloat根据格式fmt和精度prec将浮点数f转换为字符串。

  格式fmt取值有几种,'b'表示二进制指数( - ddddp±ddd),'e'表示十进制指数( - d.dddde±dd),'E'表示十进制指数(- ddddd±dd),'f'表示无指数(- ddd.dddd),'g'表示对于大指数使用格式'e',否则使用'f','G'表示对于大指数使用格式'E',否则使用'f'。

  精度是由格式'e','E','f','g'和'G'控制。 对于'e','E'和'f',是小数点后的位数。 对于'g'和'G',是最大有效位数(删除末尾的零)。当prec=-1时,表示使用所需的最小位数。

// float64 ↔ string
float64Value,err:=strconv.ParseFloat("3.1415926535",64)
if err !=nil{
fmt.Printf("Failed to conv string to float64: %s",err)
}else{
fmt.Printf("%T %s conv to %T %v\n","3.1415926535","3.1415926535",float64Value,float64Value) //string 3.1415926535 conv to float64 3.1415926535
}
stringValue=strconv.FormatFloat(float64Value,'E',-1,64)
fmt.Printf("%T %v conv to %T %s\n",float64Value,float64Value,stringValue,stringValue) //float64 3.1415926535 conv to string 3.1415926535E+00

bool ↔ string

func ParseBool(str string) (bool, error)

  返回string类型的str表示的bool值,str∈{1,t,T,TRUE,true,True,0,f,F,FALSE,false,False},如果str是其他值,函数返回error。

func FormatBool(b bool) string

  根据b的值返回“true”或“false”。

// bool ↔ string
boolValue, err := strconv.ParseBool("true")
if err != nil {
fmt.Printf("Failed to conv string to bool: %s\n", err)
} else {
fmt.Printf("%T %s conv to %T %v\n", "true", "true", boolValue, boolValue) //string true conv to bool true
}
stringValue = strconv.FormatBool(boolValue)
fmt.Printf("%T %v conv to %T %s\n", boolValue, boolValue, stringValue, stringValue) //bool true conv to string true

go package 学习笔记 —— strconv(string与其他基本数据类型(int, float, bool)的转换)的更多相关文章

  1. Python学习笔记 (2.1)标准数据类型之Number(数字)

    Python3中,数字分为四种——int,float,bool,complex int(整型) 和数学上的整数表示没啥区别,没有大小限制(多棒啊,不用写整数高精了),可正可负.还可表示16进制,以 0 ...

  2. C++string,char* 字符数组,int类型之间的转换

    string.int 常见类型之间相互转换 int & string 之间的转换 C++中更多的是使用流对象来实现类型转换 针对流对象 sstream实现 int,float 类型都可以实现 ...

  3. Redis学习笔记(2)-String

    package cn.com; import java.util.List; import redis.clients.jedis.Jedis; public class Redis_String { ...

  4. JavaScript学习笔记之string

    字符串定义: 1,var myString=“内容”:or var myString=‘内容’ 2,var myString= new String(“内容”)           ---〉创建对象, ...

  5. HTML 学习笔记 JavaScript (String)

    String对象用于存储字符串的数据.这里我们做了JavaScript的String字符串对象常用操作总结. 创建String对象的方式 声明:String 对象的方法也可以在所有基本字符串值中访问到 ...

  6. Thinking in java学习笔记之String的不可变性

    为了提高效率,可以使用StringBuffer或StringBuilder 1. 在执行速度方面的比较:StringBuilder > StringBuffer 2. StringBuffer与 ...

  7. Java学习笔记 02 String类、StringBuilder类、字符串格式化和正则表达式

    一.String类一般字符串 声明字符串 >>String str 创建字符串 >>String(char a[])方法用于将一个字符数组创建为String对象 >> ...

  8. C++学习笔记(六):复杂数据类型(string、容器和STL)

    STL 即Standard Template Library(标准模板库),由于C++自带的数据类型过于简单,并不能满足我们的使用需要,而STL作为C++标准的内置库为我们编写好了多种高效的数据结构和 ...

  9. java学习笔记之String类

    String类总结 String类概述: java.lang.String 类是字符串操作类 String类的常用构造方法: //1.直接赋值 String str= "hellojava& ...

随机推荐

  1. 78)PHP,编写session存储机制(将数据写进数据库)的代码整理(未实验)

    <?php function userSessionBegin() { echo '<br>Begin<br>'; //初始化数据库服务器连接,这个函数是最先执行,所以, ...

  2. prototype与__proto__

    __proto__是每个对象都有的一个属性,而prototype是函数才会有的属性!!! 使用Object.getPrototypeOf()代替__proto__!!! 一.prototype 几乎所 ...

  3. Java中的注意点

    1.源文件以.java结束,源文件的基本组成部分是类(class) 2.每个源文件只能有一个public类,源文件名必须和该类的类名一致 3.每个Java程序的执行入口都是main()方法,固定写法为 ...

  4. [LC] 129. Sum Root to Leaf Numbers

    Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number ...

  5. 无标定量|有标定量|谱图计数|XIC|AMT数据库|RT对对齐|母离子|子离子|SILVER|SRM|iBAQ|APEX|差异蛋白筛选|MaxQuant|PANDA|C-HPP

    生物医学大数据-蛋白质定量 现今肽段定量效率存在巨大差异.比如相同质量蛋白质,但是肽段和蛋白信号不均一,在物理条件一致时,仅有70%的重复率,并且当重复次数变多时,overlapping在变少. 无标 ...

  6. Hibernate实现步骤

    1. 引入jar文件(hibernate3.jar, lib\required目录下所有的jar,log4j记录的log4j-1.2.16.jar,slf4j-log4j12-1.5.8.jar,oj ...

  7. Archlinux安装与出现的问题

    arch的安装 arch的安装主要参考官网arch wiki,基本上按照Beginners' guide的步骤就可以安装,不过这里推荐用U盘刻录的方法来安装,我尝试过用硬盘安装的办法,还是感觉U盘刻录 ...

  8. ubuntu 16 下安装 Ubuntu Make

    第一步:下载安装包 地址:http://ftp.gnu.org/gnu/make/ 第二步:解压 先进入存放文件目录,图示: 进行解压,图示: 解压并copy到安装目录 第三步:编译 1.查看目录, ...

  9. 一劳永逸的解决AFNetworking3.0网络请求问题

    AFNetworking在iOS网络请求第三方库中占据着半壁江山,前段时间将AFNetworking进行了3.0版本的迁移,运用面向对象的设计将代码进行封装整合,这篇文章主要为还在寻找AFNetwor ...

  10. Kubelet

    Kubelet 相关博客 Kubelet组件深度解析 Kubelet组件解析 Kubelet运行机制分析 Kubelet与apiserver通信 ___ Kubelet组件运行在Node节点上,维持运 ...