Nilai Berganda dan Operasi Modulus
Dalam pengaturcaraan, pengendali modulus (%) mengira baki apabila satu nombor dibahagikan dengan yang lain. Walau bagaimanapun, dalam C , cuba menggunakan operasi modulus kepada dua nombor titik terapung berketepatan ganda (berganda) mengakibatkan ralat.
Kod berikut menunjukkan isu ini:
int main() { double x = 6.3; double y = 2; double z = x % y; }
Selepas penyusunan, kod ini menghasilkan ralat:
error: invalid operands of types 'double' and 'double' to binary 'operator%'
Ralat ini berlaku kerana pengendali modulus ditakrifkan hanya untuk integer operan. Untuk beregu, fungsi yang setara ialah fmod(). Untuk menggunakan operasi modulus dengan nilai berganda, gunakan fmod() seperti berikut:
#include <cmath> int main() { double x = 6.3; double y = 2.0; double z = std::fmod(x, y); }
Atas ialah kandungan terperinci Mengapa Operator Modulus Tidak Berfungsi dengan Beregu dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!