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.是否有其他逻辑方法可以完成?
我的目的是在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)