我有一个 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)
慕尼黑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 原样返回。
- 3 回答
- 0 关注
- 227 浏览
添加回答
举报
0/150
提交
取消