Ketidakupayaan untuk Menggunakan Operator Modulus dengan Pembolehubah Berganda
Dalam pengaturcaraan, operator modulus (%) biasanya digunakan untuk mengira baki selepas integer pembahagian. Walau bagaimanapun, percubaan untuk menggunakan operator ini kepada nombor titik terapung berketepatan dua dalam C boleh mengakibatkan mesej ralat yang menyatakan bahawa operan adalah tidak sah. Untuk membetulkan isu ini, kita perlu menggunakan pendekatan yang berbeza.
Ralat timbul disebabkan fakta bahawa pengendali modulus bertujuan untuk pembolehubah integer, yang hanya boleh menganggap nilai nombor bulat. Pembolehubah berganda, sebaliknya, mewakili nombor pecahan. Untuk melakukan operasi yang serupa pada beregu, kita mesti menggunakan fungsi fmod().
Berikut ialah cara untuk menyelesaikan isu menggunakan fungsi fmod():
#include <cmath> int main() { double x = 6.3; double y = 2.0; double z = std::fmod(x, y); }
Fmod() fungsi ditakrifkan dalam
Atas ialah kandungan terperinci Mengapa Operator Modulus Tidak Berfungsi dengan Beregu dalam C dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!