如何将字符串“ 210.0n”转换为浮点型

时间:2019-06-18 20:38:49

标签: go

我具有以下格式的字符串值: “ 210.0n”,我需要将其与值“ 2.1e-07”进行比较。当然,直接比较会失败。

有什么方法可以将诸如“ 210.0n”,“ 0.7m”,“ 10.0K”(带有单位度量)的字符串转换为正常的浮点值?也许可以使用专用的Go模块?我找不到。

2 个答案:

答案 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

不同的后缀:https://www.mathsisfun.com/metric-numbers.html

答案 1 :(得分:0)

如果这个答案有帮助,那么我在Github github.com/dustin/go-humanize上找到了这个软件包,其中包含必要的代码,可将诸如“ 240n”,“ 1p”等字符串转换为浮点型。 它包含了更多的数据转换可能性。希望它能帮助一些在Go中使用浮动对象的新手。