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

相关推荐
于越海14 分钟前
材料电子理论核心四个基本模型的python编程学习
开发语言·笔记·python·学习·学习方法
代码方舟19 分钟前
Java后端实战:构建基于天远手机号码归属地核验的金融级风控模块
java·大数据·开发语言·金融
我命由我1234520 分钟前
开发中的英语积累 P26:Recursive、Parser、Pair、Matrix、Inset、Appropriate
经验分享·笔记·学习·职场和发展·求职招聘·职场发展·学习方法
wuk99825 分钟前
基于MATLAB实现栅格地图全覆盖移动路径规划
开发语言·matlab
北岛寒沫35 分钟前
北京大学国家发展研究院 经济学原理课程笔记(第二十三课 货币供应与通货膨胀)
经验分享·笔记·学习
幽络源小助理1 小时前
PHP虚拟商品自动发卡系统源码 – 支持文章付费阅读与自动发货
开发语言·php
故事不长丨1 小时前
C#集合:解锁高效数据管理的秘密武器
开发语言·windows·c#·wpf·集合·winfrom·字典
知识分享小能手1 小时前
Ubuntu入门学习教程,从入门到精通,Ubuntu 22.04中的Java与Android开发环境 (20)
java·学习·ubuntu
好奇龙猫1 小时前
【大学院-筆記試験練習:数据库(データベース問題訓練) と 软件工程(ソフトウェア)(10)】
学习
wdfk_prog1 小时前
[Linux]学习笔记系列 -- [fs][proc]
linux·笔记·学习