小编Geo*_*mas的帖子

如何在golang中将float64类型截断为特定的精度?

package main

import (
    "fmt"
    "strconv"
    )

func main() {
    k := 10/3.0
    i := fmt.Sprintf("%.2f", k)
    f,_ := strconv.ParseFloat(i, 2)
    fmt.Println(f)
}
Run Code Online (Sandbox Code Playgroud)

我必须编写上面的程序,以将go float64变量的精度降低到2.在这种情况下,我使用了strconv和fmt.是否有其他逻辑方法可以完成?

floating-point go

49
推荐指数
7
解决办法
6万
查看次数

如何从golang程序设置ulimit -n?

我的目的是在golang程序中设置ulimit -n,这样我就不必在全局范围内设置它,而是在程序中限制它.

找到systemcalls setrlimit并获得相同的rlimit.(http://linux.die.net/man/2/setrlimit)

但是当我尝试同样的示例程序时,我在设置值时收到错误说无效参数.

    package main

    import (
         "fmt"
         "syscall"
     )

    func main() {

        var rLimit syscall.Rlimit

        err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit)

        if err != nil {
                fmt.Println("Error Getting Rlimit ", err)
        }
        fmt.Println(rLimit)

        rLimit.Max = 999999
        rLimit.Cur = 999999

        err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rLimit)
        if err != nil {
            fmt.Println("Error Setting Rlimit ", err)
         }
         err = syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit)

         if err != nil {
            fmt.Println("Error Getting Rlimit ", err)
         }
         fmt.Println("Rlimit Final", rLimit)
         }
Run Code Online (Sandbox Code Playgroud)

获得的输出是:

george@george-Not-Specified ~/work/odesk/progium/trial $ …
Run Code Online (Sandbox Code Playgroud)

operating-system network-programming system-calls go ulimit

8
推荐指数
1
解决办法
6960
查看次数