添加 float64 值,结果 的小数值将消失

package main



import (

  "fmt"

  "os"

  "bufio"

  "strconv"

)


func main() {


    var _ = strconv.Itoa 

  

    var d float64 = 4.0


    scanner := bufio.NewScanner(os.Stdin)


    var b float64

   

    scanner.Scan()


    b, _ = strconv.ParseFloat(scanner.Text(), 64)

  

    fmt.Println(float64(d + b))

    

}


慕后森
浏览 97回答 1
1回答

红颜莎娜

打印值时,它使用默认表示法。从 fmt 文档中:The default format for %v is:  ...  float32, complex64, etc: %g  ...The default precision for ... %g it is the smallest number of digits necessaryto identify the value uniquely.下面修改了您的代码以演示这一点:package mainimport (  "fmt"  "os"  "bufio"  "strconv")func main() {    var d float64 = 4.0    scanner := bufio.NewScanner(os.Stdin)    for {        fmt.Printf("Enter a number: ")        scanner.Scan()        b, err := strconv.ParseFloat(scanner.Text(), 64)        if err != nil {            fmt.Println(err)            continue        }        result := b + d        fmt.Println("\nResult:")        fmt.Printf("\t%%v: %v\n", result)        fmt.Printf("\t%%g: %g\n", result)        fmt.Printf("\t%%f: %f\n\n", result)    }}$ go run test.goEnter a number: 5Result:        %v: 9        %g: 9        %f: 9.000000Enter a number: 5.5Result:        %v: 9.5        %g: 9.5        %f: 9.500000Enter a number: 7.8910Result:        %v: 11.891        %g: 11.891        %f: 11.891000Enter a number:
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go