dtbhp60824 2013-09-30 18:40
浏览 74
已采纳

formatFloat:将浮点数转换为字符串[重复]

This question already has an answer here:

http://golang.org/pkg/strconv/

http://play.golang.org/p/4VNRgW8WoB

How do I convert a float number into string format? This is google playground but not getting the expected output. (2e+07) I want to get "21312421.213123"

package main

import "fmt"
import "strconv"

func floattostr(input_num float64) string {

        // to convert a float number to a string
    return strconv.FormatFloat(input_num, 'g', 1, 64)
 }

 func main() {
      fmt.Println(floattostr(21312421.213123))
      // what I expect is "21312421.213123" in string format
 }

Please help me get the string out of float number. Thanks

</div>
  • 写回答

1条回答 默认 最新

  • duanhui7329 2013-09-30 18:56
    关注

    Try this

    package main
    
    import "fmt"
    import "strconv"
    
    func FloatToString(input_num float64) string {
        // to convert a float number to a string
        return strconv.FormatFloat(input_num, 'f', 6, 64)
    }
    
    func main() {
        fmt.Println(FloatToString(21312421.213123))
    }
    

    If you just want as many digits precision as possible, then the special precision -1 uses the smallest number of digits necessary such that ParseFloat will return f exactly. Eg

    strconv.FormatFloat(input_num, 'f', -1, 64)
    

    Personally I find fmt easier to use. (Playground link)

    fmt.Printf("x = %.6f
    ", 21312421.213123)
    

    Or if you just want to convert the string

    fmt.Sprintf("%.6f", 21312421.213123)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?