跟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 类型的范围。如果超出范围,则输出提示信息;否则才进行转换。

相关推荐
_李小白17 分钟前
【AlohaMini学习笔记】第三天:AlohaMini相关技术
笔记·学习
我命由我1234529 分钟前
Photoshop - Photoshop 工具栏(57)模糊工具
学习·ui·职场和发展·求职招聘·职场发展·学习方法·photoshop
yatingliu201929 分钟前
将深度学习环境迁移至老旧系统| 个人学习笔记
笔记·深度学习·学习
basketball61632 分钟前
python 的对象序列化
开发语言·python
week_泽43 分钟前
第1课:AI Agent是什么 - 学习笔记_1
人工智能·笔记·学习
DICOM医学影像1 小时前
3. go语言从零实现以太坊客户端 - 查询合约中账户余额
golang·区块链·智能合约·solidity·以太坊·web3.0
fie88891 小时前
钢结构件制造车间生产调度实例:MATLAB实现(基于遗传算法)
开发语言·matlab·制造
沐知全栈开发1 小时前
PHP 安装指南
开发语言
开开心心_Every1 小时前
安卓后台录像APP:息屏录存片段,行车用
java·服务器·前端·学习·eclipse·edge·powerpoint
Highcharts.js1 小时前
Highcharts Grid 表格/网格安装 |官方安装文档说明
开发语言·javascript·表格组件·highcharts·官方文档·安装说明·网格组件