Rumah > pembangunan bahagian belakang > C++ > Mengapa Operator Modulus (%) Tidak Berfungsi Secara Terus dengan Beregu dalam C ?

Mengapa Operator Modulus (%) Tidak Berfungsi Secara Terus dengan Beregu dalam C ?

Linda Hamilton
Lepaskan: 2024-12-14 10:59:10
asal
877 orang telah melayarinya

Why Doesn't the Modulus Operator (%) Work Directly with Doubles in C  ?

Kendalian Modulus pada Beregu: Mengapa Ia Tidak Boleh Digunakan Terus?

Dalam C , pengendali modulus (%) digunakan terutamanya untuk operasi yang melibatkan operan integer. Walau bagaimanapun, apabila cuba melakukan % pada dua pembolehubah berganda, seperti yang digambarkan di bawah:

double x = 6.3;
double y = 2;
double z = x % y; // Error: invalid operands of types 'double' and 'double' to binary 'operator%'
Salin selepas log masuk

anda mungkin menghadapi ralat yang menunjukkan jenis operan yang tidak serasi untuk operasi modulus.

Memahami Isu

Sebab ralat ini berpunca daripada kelakuan berbeza % pengendali pada integer dan nombor titik terapung. Untuk integer, % mengira baki selepas membahagikan operan kiri dengan operan kanan. Walau bagaimanapun, untuk nombor titik terapung, % tidak ditakrifkan dalam C .

Penyelesaian: Memperkenalkan fmod()

Untuk melaksanakan operasi modulus pada nombor titik terapung dalam C , anda perlu menggunakan fungsi fmod(). Fungsi ini ditakrifkan dalam fail header dan mengembalikan baki titik terapung pembahagian argumen pertamanya dengan argumen kedua.

Contoh Penggunaan

Berikut ialah contoh cara menggunakan fmod( ) untuk mengira baki pembahagian dua beregu:

#include <cmath> // Include the <cmath> header for fmod()

int main()
{
    double x = 6.3;
    double y = 2.0;
    double z = fmod(x, y); // Usage of fmod() for floating-point modulus calculation
}
Salin selepas log masuk

Kesimpulan

Walaupun pengendali modulus tidak boleh digunakan terus pada beregu, fungsi fmod() menyediakan alternatif yang mudah untuk melaksanakan operasi modulus pada terapung -nombor mata, membolehkan anda mengendalikan baki dalam tugas pengaturcaraan anda dengan berkesan.

Atas ialah kandungan terperinci Mengapa Operator Modulus (%) Tidak Berfungsi Secara Terus dengan Beregu dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan