How can we truncate float64 type to a particular precision?

前端 未结 12 1620
礼貌的吻别
礼貌的吻别 2021-02-02 05:33
package main

import (
    \"fmt\"
    \"strconv\"
    )

func main() {
    k := 10/3.0
    i := fmt.Sprintf(\"%.2f\", k)
    f,_ := strconv.ParseFloat(i, 2)
    fmt.Pri         


        
12条回答
  •  青春惊慌失措
    2021-02-02 05:56

    modify from @creack

    package main
    
    import (
        "fmt"
    )
    
    func main() {
    
        //untruncated := 10/3.0
        untruncated := 4.565
        tmp := int(untruncated*100)
        last := int(untruncated*1000)-tmp*10
        if last>=5{
            tmp += 1
        }
        truncated := float64(tmp)/100
    
        fmt.Println(untruncated, truncated)
    }
    

提交回复
热议问题