在 Go 中测试整数浮点数相等
在 Go 中处理浮点数时,可能需要确定给定的值是否float 值代表一个整数。虽然尝试使用模运算符 (%) 似乎是一种简单的方法,但请务必注意,该运算符不是为 float64 值定义的。
使用整数转换
测试整数浮点相等性的一种方法是将浮点值与转换后的整数值进行比较。如果浮点值和转换后的整数值相等,则浮点被视为整数。这可以使用以下语法来实现:
if a == float64(int64(a)) { // a is a whole number }
使用 math.Trunc 函数
对于浮点值可能超出 int64 范围的情况,另一种方法是使用 math.Trunc 函数。该函数截断浮点数的小数部分,返回整数值。通过将原始浮点值与其截断值进行比较,可以确定浮点是否为整数:
if a == math.Trunc(a) { // a is a whole number }
示例
以下 Go 代码演示如何使用 math.Trunc 函数正确确定浮点值是否表示整数:
package main import ( "fmt" "math" ) func main() { var a float64 = 2.00 if a == math.Trunc(a) { fmt.Println("yay") } else { fmt.Println("you fail") } }
In本例测试了浮点值 2.00,输出将为“yay”,因为 2.00 是整数。
以上是如何有效检查 Go Float64 是否代表整数?的详细内容。更多信息请关注PHP中文网其他相关文章!