Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Memeriksa dengan Cekap sama ada Go Float64 Mewakili Nombor Bulat?

Bagaimana untuk Memeriksa dengan Cekap sama ada Go Float64 Mewakili Nombor Bulat?

DDD
Lepaskan: 2024-12-17 14:37:29
asal
490 orang telah melayarinya

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

Menguji Kesetaraan Terapung Nombor Bulat dalam Go

Apabila bekerja dengan nombor titik terapung dalam Go, mungkin perlu untuk menentukan sama ada sesuatu yang diberikan nilai apungan mewakili nombor bulat. Walaupun cuba menggunakan operator modulo (%) mungkin kelihatan seperti pendekatan yang mudah, adalah penting untuk ambil perhatian bahawa operator ini tidak ditakrifkan untuk nilai float64.

Menggunakan Penukaran Integer

Satu pendekatan untuk menguji kesamaan apungan nombor bulat ialah membandingkan nilai apungan kepada nilai integer yang ditukar. Jika nilai apungan dan nilai integer yang ditukar adalah sama, maka apungan itu dianggap sebagai nombor bulat. Ini boleh dicapai menggunakan sintaks berikut:

if a == float64(int64(a)) {
    // a is a whole number
}
Salin selepas log masuk

Menggunakan matematik.Trunc Function

Untuk kes di mana nilai apungan mungkin melebihi julat int64, pendekatan alternatif ialah menggunakan fungsi math.Trunc. Fungsi ini memotong bahagian pecahan nombor apungan, mengembalikan nilai integer. Dengan membandingkan nilai apungan asal kepada nilai terpenggalnya, adalah mungkin untuk menentukan sama ada apungan ialah nombor bulat:

if a == math.Trunc(a) {
    // a is a whole number
}
Salin selepas log masuk

Contoh

Kod Go berikut menunjukkan penggunaan matematik.Fungsi Trunc untuk menentukan dengan betul sama ada nilai apungan mewakili nombor bulat:

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")
    }
}
Salin selepas log masuk

Dalam ini contoh, nilai apungan 2.00 diuji dan output akan menjadi "yay" kerana 2.00 ialah nombor bulat.

Atas ialah kandungan terperinci Bagaimana untuk Memeriksa dengan Cekap sama ada Go Float64 Mewakili Nombor Bulat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan