跟ChatGPT学习go语言-float64转成int

在 Go 语言中可以将 float64 类型转换为 int 类型。需要注意的是,转换过程中会丢失小数部分,只保留整数部分。

示例代码

bash 复制代码
package main

import (
    "fmt"
)

func main() {
    var f float64 = 123.456
    var i int = int(f)
    fmt.Printf("float64: %f, int: %d\n", f, i)
}

解释

1.定义一个 float64 类型的变量 f:

bash 复制代码
var f float64 = 123.456

2.将 float64 转换为 int:

bash 复制代码
var i int = int(f)

这行代码将 f 转换为 int 类型,并赋值给变量 i。转换时会舍弃小数部分,所以 i 的值将是 123。

3.打印结果:

bash 复制代码
fmt.Printf("float64: %f, int: %d\n", f, i)

这行代码将输出:

bash 复制代码
float64: 123.456000, int: 123

注意事项

舍弃小数部分:在转换过程中,小数部分会被舍弃。例如,123.456 会被转换为 123。

溢出风险:如果 float64 的值超出了 int 类型的范围,转换后的结果可能会导致溢出。

处理溢出

如果你需要处理可能的溢出情况,可以在转换前进行检查:

bash 复制代码
package main

import (
    "fmt"
    "math"
)

func main() {
    var f float64 = 1e20 // 一个非常大的浮点数
    if f > float64(math.MaxInt64) || f < float64(math.MinInt64) {
        fmt.Println("Value is out of int range")
    } else {
        var i int = int(f)
        fmt.Printf("float64: %f, int: %d\n", f, i)
    }
}

在这个示例中,首先检查 f 是否超出了 int 类型的范围。如果超出范围,则输出提示信息;否则才进行转换。

相关推荐
小白学大数据2 小时前
Python 项目实战:用 Flask 构建生产级 MySQL 增删改查 REST API
开发语言·人工智能·python·mysql·flask
Nil2082 小时前
leetcode 20有效的括号
开发语言
jaysee-sjc2 小时前
【苍穹外卖】Day01:从零认识企业级项目开发
java·开发语言·数据库·mysql·spring·intellij-idea·mybatis
ThornArmor2 小时前
《向内深潜,向外飞掠》
c语言·开发语言·c++·vim·visual studio
传奇开心果编程2 小时前
【仓颉语言基础语法学与练】第1课:从零开始
开发语言·学习·华为
ttwuai2 小时前
Go开源后台管理系统推荐:怎么先排除 Fork、镜像和同名项目?
golang
君顾12 小时前
本地AI错题纠正小程序:端侧推理与错题闭环实战
java·开发语言·错题
吠品2 小时前
Python 写入 Excel 的两种主流方案实际用法总结
c语言·开发语言·算法
M78佐菲2 小时前
ARM学习笔记(三)
linux·arm开发·笔记·嵌入式硬件·学习
邪修king2 小时前
Re:Linux 系统篇(三十一):库的制作与原理Chapter2:静态链接与程序加载 —— 从磁盘 ELF 到运行中进程的完整旅程
android·linux·运维·开发语言