为了账号安全,请及时绑定邮箱和手机立即绑定

在 golang 中的分隔符后修剪所有内容

在 golang 中的分隔符后修剪所有内容

Go
MMMHUHU 2021-09-27 20:45:03
我有一个 float64 我转换成一个字符串: 30.060671我正在尝试修剪/删除/咀嚼之后的所有内容 30我尝试过的一些事情:fmt.Println(strings.TrimRight("30.060671", ".([0-9])"))fmt.Println(strings.TrimRight("30.060671", "."))fmt.Println(strings.TrimSuffix("30.060671", "."))
查看完整描述

3 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

一种方法是在句点上使用 strings.Split:


parts := strings.Split("30.060671", ".")

fmt.Println(parts[0])

另一种选择是先转换为 int,然后再转换为字符串:


a := 30.060671

b := int(a)    

fmt.Println(b)


查看完整回答
反对 回复 2021-09-27
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

根据评论中建议的@pайтфолд,您应该在转换为string之前对float进行四舍五入。


无论如何,这是我尝试使用strings.Index修剪剩余的.:


func trimStringFromDot(s string) string {

    if idx := strings.Index(s, "."); idx != -1 {

        return s[:idx]

    }

    return s

}


另外,要回答为什么TrimRight和TrimSuffix不能按预期工作是因为.不是尾随字符串/unicode:


TrimRight 返回字符串 s 的一个片段,其中包含在 cutset 中的所有尾随 Unicode 代码点被删除。


TrimSuffix 返回没有提供的尾随后缀字符串的 s。如果 s 不以后缀结尾,则 s 原样返回。


查看完整回答
反对 回复 2021-09-27
  • 3 回答
  • 0 关注
  • 227 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信