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