您的位置 首页 golang

goLang百分数转整数的方法

笔者独白

正文

前些天遇到一个需求,从一串字符中将 n% 提取出来,再将 n% 转换为 n ,即将字符串类型(string)的 n% 转换为int类型的 n ,过程如下:

 // 导入需要使用到的包
import (
// 包 "fmt"主要包含了格式化I/O函数,类似于C语言的printf和scanf。格式字符串的规则来源于C语言,但更简单一些。
"fmt"

// 包 “strconv” 主要包含了对字符串和基本数据类型之间的转换函数。
  // 基本数据类型包括:布尔、整型(包括有/无符号、二进制、八进制、十进制和十六进制)和浮点型等。
"strconv"
)

func main(){
// 要转换的目标对象
v1 := "37%"

/*
1、先转换成切换,然后再转换成string类型,当然也可以这样写:v2 := v[:len(v)-1](为什么要这样转,和字符编码有关,这里还涉及到GO语言的性能问题,还是新手先会用就行,以后进阶研究一下)
2、len() 是获取字符串的长度的函数
3、[:len(v)-1] 指定切片的长度,具体理解就是截取 “37%” 除 “%” 以外的其他内容,因为 “%” 前面的数字长度可能是不固定的甚至可能出现小数的情况,所以在处理的时候不能事先指定长度,只能通过动态计算出字符长度
*/v2 := string([]byte(v)[:len(v)-1])

// 最后通过 "strconv"包的Atoi函数将string转换为int
// Atoi函数有两个返回值,result和error,如果不需要抛出异常可以把error赋值变量写为“_”,如“v3,_ := usageNum, _ := strconv.Atoi(v2)”
v3,err := usageNum, _ := strconv.Atoi(v2)
if (err!=nil) {
fmt.Println(err.Error())
}

fmt.Printf("v3: %v, type: %T\n", v3, v3) // v3: 37, type: int
}  

后语

肯定有人会问为什么不直接把数字提取出来而是要这么麻烦进行转换呢?只是场景需要而已。还想说的是这个只是我已经学会的方法欢迎各位大佬留言提供其他方法供本萌新学习。

文章来源:智云一二三科技

文章标题:goLang百分数转整数的方法

文章地址:https://www.zhihuclub.com/101197.shtml

关于作者: 智云科技

热门文章

网站地图