ホームページ >バックエンド開発 >C++ >モジュラス演算子が C の double で機能しないのはなぜですか?

モジュラス演算子が C の double で機能しないのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-06 18:39:17501ブラウズ

Why Doesn't the Modulus Operator Work with Doubles in C  ?

倍精度値と剰余演算

プログラミングでは、剰余演算子 (%) は、ある数値を別の数値で除算したときの剰余を計算します。ただし、C では、2 つの倍精度浮動小数点数 (double) に剰余演算を適用しようとすると、エラーが発生します。

次のコードは、この問題を示しています。

int main() {
    double x = 6.3;
    double y = 2;
    double z = x % y;
}

コンパイル時に、このコードはエラーを生成します:

error: invalid operands of types 'double' and 'double' to binary 'operator%'

このエラーは、モジュラス演算子が整数に対してのみ定義されているために発生します。オペランド。 double の場合、同等の関数は fmod() です。 double 値でモジュラス演算を使用するには、次のように fmod() を使用します。

#include <cmath>

int main() {
    double x = 6.3;
    double y = 2.0;
    double z = std::fmod(x, y);
}

以上がモジュラス演算子が C の double で機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。