package mainimport ( "fmt")func main(){ //float to int fmt.Println(int64(1.9))}我收到语法错误“无法将'float64'类型的表达式转换为'int64'类型”,如何纠正它?
2 回答
开满天机
TA贡献1786条经验 获得超13个赞
类型转换对常量有特殊的规则:
如果 x 可以由 T 的值表示,则常数值 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))
}
哪个输出1符合预期。
或者,如果您想更好地控制舍入与截断,请使用数学包中的函数之一。
- 2 回答
- 0 关注
- 212 浏览
添加回答
举报
0/150
提交
取消