如何将浮点数转换为字符串

时间:2018-11-15 05:12:40

标签: string go floating-point precision

我从文件中读取了一个浮点数,必须将其转换为字符串。我的问题是我不确定小数点后会有几位数。我需要精确地将float转换为字符串。

For ex: 
1.10 should be converted to "1.10"
Also,
1.5 should be converted to "1.5"
Can someone suggest how to go about this?

4 个答案:

答案 0 :(得分:3)

像这样使用strconv.FormatFloat

s := strconv.FormatFloat(3.1415, 'E', -1, 64)
fmt.Println(s)

输出

  

3.1415

答案 1 :(得分:2)

func main() {
    var x float32
    var y string
    x= 10.5
    y = fmt.Sprint(x)
    fmt.Println(y)
}

答案 2 :(得分:1)

将浮点数转换为字符串

FormatFloat根据fmt和precision prec格式将浮点数f转换为字符串。假设原始结果是从bitSize位的浮点值(float32为32,float64为64)获得的,则对结果取整。

  

func FormatFloat(f float64,fmt byte,prec,bitSize int)字符串

f := 3.14159265
s := strconv.FormatFloat(f, 'E', -1, 64)
fmt.Println(s) 
  

输出为“ 3.14159265”

另一种方法是使用fmt.Sprintf

s := fmt.Sprintf("%f", 123.456) 
fmt.Println(s)
  

输出为“ 123.456000”

检查play ground上的代码

答案 3 :(得分:0)

一行,仅此而已:)

str := fmt.Sprint(8.415)