我具有以下格式的字符串值: “ 210.0n”,我需要将其与值“ 2.1e-07”进行比较。当然,直接比较会失败。
有什么方法可以将诸如“ 210.0n”,“ 0.7m”,“ 10.0K”(带有单位度量)的字符串转换为正常的浮点值?也许可以使用专用的Go模块?我找不到。
答案 0 :(得分:0)
您可以自己在一个简单的开关盒中编写此代码。不需要图书馆。
var str = "100k"
mFloat, err := strconv.ParseFloat(str[:len(str)-1], 64)
if err != nil{
//handle error
}
switch string(str[len(str)-1]){
case "k":
mFloat = mFloat * 1000
fmt.Printf("%e", )
case "m":
mFloat = mFloat * 1000000
fmt.Printf("%e", mFloat * 1000000)
// etc ....
}
return mFloat
答案 1 :(得分:0)
如果这个答案有帮助,那么我在Github github.com/dustin/go-humanize上找到了这个软件包,其中包含必要的代码,可将诸如“ 240n”,“ 1p”等字符串转换为浮点型。 它包含了更多的数据转换可能性。希望它能帮助一些在Go中使用浮动对象的新手。