如果 int64 除以整数后不能整除,得到的结果类型是 float64。

在 Golang 中,如果两个操作数都是整数,那么除法运算的结果也是整数。但是,如果除法结果不能整除,就会被转换为 float64 类型。

例如,以下代码:

var num1 int64 = 10
var num2 int = 3
var result = num1 / num2
fmt.Printf("result type: %T, result: %v", result, result)

输出结果为:

result type: float64, result: 3.3333333333333335

这是因为 10 除以 3 不能整除,所以结果被转换为 float64 类型。

需要注意的是,即使操作数都是 int64 类型,只要除法结果不能整除,结果类型也会变为 float64。

为了避免这种情况,可以使用以下方法:

  1. 使用 math.Floormath.Ceil 函数将结果向下或向上取整。
  2. 使用 float64 类型进行运算。

例如,以下代码:

var num1 int64 = 10
var num2 int = 3
var result = float64(num1) / float64(num2)
fmt.Printf("result type: %T, result: %v", result, result)

输出结果为:

result type: float64, result: 3.3333333333333335

使用 float64 类型进行运算可以确保得到精确的结果。

Golang int64 除以整数:结果类型分析

原文地址: https://www.cveoy.top/t/topic/p268 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录