我已经尝试了几种方法将float转换为int,我想要的是截断一个float,所以我只得到整数部分.我正在使用
x := float32(3.1)
y,_ := strconv.Atoi((strconv.Ftoa32(x,'f',0))) //y becomes 3
Run Code Online (Sandbox Code Playgroud)
但是如果x是3.9,y将变为4,因为这个函数将围绕float32而不是截断.有没有一种截断而不是舍入的方法?如果是这样,是否可以在不涉及字符串的情况下进行?(比如在C中将float转换为int)
我需要将uint32转换为字符串.我怎样才能做到这一点 .strconv.Itoa似乎不起作用.长存储:我需要将通过imap包接收的UID转换为字符串,以便稍后将其设置为序列.作为旁注,我想知道为什么Go中的这种转换很困难.演员string(t)本来可以这么容易
我想在golang中将字符串转换为整数.但我不知道字符串的格式.例如,"10"- > 10,"65.0"- > 65,"xx"- > 0,"11xx" - > 11,"xx11" - > 0
我做了一些搜索并找到了strconv.ParseInt().但它无法处理"65.0".所以我必须检查字符串的格式.
有没有更好的办法?
我正在玩Go,并想知道在Go中执行惯用类型转换的最佳方法是什么.基本上我的问题之间的自动类型转换中规定uint8,uint64和float64.根据我对其他语言的经验,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)
从我的观点来看,由于所有显式类型转换,上限值的计算似乎不必要复杂.
谢谢!