相关疑难解决方法(0)

在Go中将float64转换为int

如何在Go中将float64转换为int?我知道该strconv包可用于将任何内容转换为字符串或从字符串转换,但不能在数据类型之间转换,其中一个不是字符串.我知道我可以使用fmt.Sprintf将任何东西转换为字符串,然后将strconv其转换为我需要的数据类型,但这种额外的转换似乎有点笨拙 - 有更好的方法吗?

go

101
推荐指数
4
解决办法
13万
查看次数

formatFloat:将float number转换为string

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

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

如何将浮点数转换为字符串格式?这是谷歌游乐场,但没有得到预期的输出.(2e + 07)我想得到"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
 }
Run Code Online (Sandbox Code Playgroud)

请帮我从浮点数中取出字符串.谢谢

go

48
推荐指数
1
解决办法
9万
查看次数

有没有办法将整数转换为bools,反之亦然?

是否存在将bool转换为整数的内置方法,反之亦然?我尝试过普通的转换,但由于它们使用不同的底层类型,转换是不可能的经典方式.我已经倾注了一些规范,但我还没有找到答案.

types go

24
推荐指数
5
解决办法
2万
查看次数

如何使用Go将浮点数格式化为字符串

使用Go我试图找到将浮点数格式化为字符串的"最佳"方法.我找了一些例子但是找不到任何具体回答我的问题的东西.我想要做的就是使用"最佳"方法将浮点数格式化为字符串.小数位数可能会有所不同,但是已知(例如,2或4或零).我想要实现的一个例子如下.根据下面的例子,我应该使用fmt.Sprintf()或strconv.FormatFloat()还是其他什么?并且,每个的正常用法和每个之间的差异是什么?

我也不明白在下面使用32或64当前有32的重要性:

strconv.FormatFloat(float64(fResult), 'f', 2, 32)
Run Code Online (Sandbox Code Playgroud)

例:

package main

import (
    "fmt"
    "strconv"
)

func main() {

    var (
        fAmt1 float32 = 999.99
        fAmt2 float32 = 222.22
    )

    var fResult float32 = float32(int32(fAmt1*100) + int32(fAmt2*100)) / 100

    var sResult1 string = fmt.Sprintf("%.2f", fResult)

    println("Sprintf value = " + sResult1)

    var sResult2 string = strconv.FormatFloat(float64(fResult), 'f', 2, 32)

    println("FormatFloat value = " + sResult2)

}
Run Code Online (Sandbox Code Playgroud)

go

14
推荐指数
1
解决办法
1万
查看次数

如何将uint8转换为字符串

http://play.golang.org/p/BoZkHC8_uA

我想将uint8转换为字符串,但无法弄清楚如何.

  package main

  import "fmt"
  import "strconv"

  func main() {

    str := "Hello"
    fmt.Println(str[1])  // 101

    fmt.Println(strconv.Itoa(str[1]))
  }
Run Code Online (Sandbox Code Playgroud)

这给了我 prog.go:11: cannot use str[1] (type uint8) as type int in function argument [process exited with non-zero status]

任何的想法?

go

11
推荐指数
3
解决办法
3万
查看次数

如何在golang中将字符串转换为整数

我想在golang中将字符串转换为整数.但我不知道字符串的格式.例如,"10"- > 10,"65.0"- > 65,"xx"- > 0,"11xx" - > 11,"xx11" - > 0

我做了一些搜索并找到了strconv.ParseInt().但它无法处理"65.0".所以我必须检查字符串的格式.

有没有更好的办法?

casting type-conversion go

9
推荐指数
3
解决办法
2万
查看次数

Go中的惯用语类型转换

我正在玩Go,并想知道在Go中执行惯用类型转换的最佳方法是什么.基本上我的问题之间的自动类型转换中规定uint8,uint64float64.根据我对其他语言的经验,a uint8与a 的乘法uint64将产生一个uint64值,但在go中则不然.

这是我构建的一个示例,我问这是否是编写此代码的惯用方法,或者我是否缺少重要的语言结构.

package main

import ("math";"fmt")

const(Width=64)

func main() {

    var index uint32
    var bits uint8

    index = 100
    bits = 3

    var c uint64
    // This is the line of interest vvvv
    c = uint64(math.Ceil(float64(index * uint32(bits))/float64(Width)))
    fmt.Println("Test: %v\n", c)
}
Run Code Online (Sandbox Code Playgroud)

从我的观点来看,由于所有显式类型转换,上限值的计算似乎不必要复杂.

谢谢!

go

7
推荐指数
1
解决办法
2183
查看次数

根据所需格式在 go lang 中将 float 转换为 string。

我在 go 中有 4 个浮点值(startLat,startLon,endLat,endLon)。我想将这些值附加(替换)到下面的字符串中:

var etaString = []byte(`{"start_latitude":"` + startLat + `","start_longitude":"` + startLon + `","end_latitude":"` + endLat + `","end_longitude":"` + endLon }`)
Run Code Online (Sandbox Code Playgroud)

在这样做之前,我必须将它们类型转换为字符串。

startLat := strconv.FormatFloat(o.Coordinate.Longitude, 'g', 1, 64)
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,我得到这些参数的值,"4e+01 -1e+02 4e+01 -1e+02" 但我只想要这样的东西: "64.2345" 。

我怎样才能做到这一点?TIA :)

string floating-point go typecast-operator

5
推荐指数
1
解决办法
6389
查看次数

Go:使用乘数将float64转换为int

我想转换一个float64数字,让我们也说1.0031003(整型).我的实现只是将float64with 乘以1000并将其转换为int.

package main

import "fmt"


func main() {
  var f float64 = 1.003
  fmt.Println(int(f * 1000))
}
Run Code Online (Sandbox Code Playgroud)

但是,当我运行该代码时,我得到的1002不是1003.因为Go会自动存储1.0031.002999...变量.在Golang上进行这种操作的正确方法是什么?

floating-point type-conversion go

2
推荐指数
1
解决办法
1680
查看次数

golang如何运行rune()函数

我在网上发布了一个rune()在golang 中使用该功能的功能,但我很难查找它是什么.我正在阅读教程,对文档缺乏经验,因此很难找到我要找的东西.

具体来说,我试图了解为什么这会失败......

fmt.Println(rune("foo"))
Run Code Online (Sandbox Code Playgroud)

而这不是

fmt.Println([]rune("foo"))
Run Code Online (Sandbox Code Playgroud)

go

1
推荐指数
1
解决办法
1091
查看次数