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

我有一个 float64 我转换成一个字符串: 30.060671


我正在尝试修剪/删除/咀嚼之后的所有内容 30


我尝试过的一些事情:


fmt.Println(strings.TrimRight("30.060671", ".([0-9])"))

fmt.Println(strings.TrimRight("30.060671", "."))

fmt.Println(strings.TrimSuffix("30.060671", "."))


MMMHUHU
浏览 228回答 3
3回答

凤凰求蛊

一种方法是在句点上使用 strings.Split:parts := strings.Split("30.060671", ".")fmt.Println(parts[0])另一种选择是先转换为 int,然后再转换为字符串:a := 30.060671b := int(a)    fmt.Println(b)

慕尼黑5688855

根据评论中建议的@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 原样返回。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go