首頁 > 後端開發 > Golang > 如何有效檢查 Go Float64 是否代表整數?

如何有效檢查 Go Float64 是否代表整數?

DDD
發布: 2024-12-17 14:37:29
原創
489 人瀏覽過

How to Efficiently Check if a Go Float64 Represents a Whole Number?

在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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板