C の剰余演算子 (%) が整数でのみ機能する理由
C の剰余演算子 (%) による除算は整数に制限されます整数の除算の固有の性質によるオペランド。整数を割るとき、結果は当然整数になり、余り(商と除数の積を引いた結果)も整数になります。
しかし、実数を扱う場合、「」という概念が重要になります。残り」はさらに複雑になります。次の例を考えてみましょう。
double x = 3.1; int y = 2; double remainder = x % y;
この場合、3.1 を 2 で割ると商 1 と余り 1.1 が得られるため、望ましい結果は 1.1 になります。残念ながら、C の法演算子は x と y の両方を整数として扱うため、整数の剰余は 1.1 ではなく 1 になります。
C でこの問題に対処するには、標準ライブラリの fmod 関数を利用できます。この関数はハイブリッド除算を実行し、オペランドが実数であっても小数部の剰余を返します。例:
#include <math.h> double x = 3.1; int y = 2; double remainder = fmod(x, y);
これにより、1.1 の正しい剰余が生成され、整数オペランドと実数オペランドの両方に対してモジュラス演算が一貫して動作することが保証されます。
以上がC の剰余演算子 (%) が整数でのみ機能するのはなぜですか?また、小数点以下の剰余はどのように処理すればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。