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
800 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!

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