package main
import (
"fmt"
)
func main(){
//float to int
fmt.Println(int64(1.9))
}
我有语法错误";无法将"float64"类型的表达式转换为"int64"类型",如何纠正?
类型转换对常量有特殊规则:
如果x可由T.的值
甚至给出了以下示例:
int(1.2) // illegal: 1.2 cannot be represented as an int
如果您真的坚持将浮点值截断为int,请使用变量作为中介,将其转换为非常量转换。Go将很乐意进行转换并删除小数部分,如规范中进一步提到的:
将浮点数转换为整数时,分数为丢弃(截断为零(。
因此您可以使用以下内容:
package main
import (
"fmt"
)
func main() {
//float to int
f := 1.9
fmt.Println(int64(f))
}
其按预期输出CCD_ 1。
如果您希望对舍入和截断进行更精细的控制,请使用数学包中的一个函数。
Jut使用数学包:
int64(math.Floor(1.9))
操场