相关疑难解决方法(0)

如何将int更改为int64?

我试图将一个整数转换为整数64但是我没有运气.有人知道一个简单的方法吗?

go

116
推荐指数
2
解决办法
10万
查看次数

在Go中从float32转换为int

我已经尝试了几种方法将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)

casting rounding go

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

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中将float转换为int时如何舍入到最接近的int

当将float转换为int时,将舍弃小数。什么是干净的转换方法,以便将其舍入到最接近的整数。

x := int(3.6) 应该等于4而不是3。

go

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

标签 统计

go ×4

casting ×1

rounding ×1