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

C ではモジュラス演算子 (%) が double に対して直接機能しないのはなぜですか?

Linda Hamilton
リリース: 2024-12-14 10:59:10
オリジナル
796 人が閲覧しました

Why Doesn't the Modulus Operator (%) Work Directly with Doubles in C  ?

Double の剰余演算: 直接使用できないのはなぜですか?

C では、主に剰余演算子 (%) が使用されます。整数オペランドを含む演算の場合。ただし、以下に示すように 2 つの double 変数に対して % を実行しようとすると、

double x = 6.3;
double y = 2;
double z = x % y; // Error: invalid operands of types 'double' and 'double' to binary 'operator%'
ログイン後にコピー

モジュラス演算のオペランド タイプに互換性がないことを示すエラーが発生する可能性があります。

問題

このエラーの理由は、整数に対する % 演算子の動作の違いに起因します。浮動小数点数。整数の場合、% は左のオペランドを右のオペランドで除算した後の剰余を計算します。ただし、浮動小数点数の % は C では定義されていません。

解決策: fmod() の導入

浮動小数点数の剰余演算を実行するにはC の場合は、 fmod() 関数を使用する必要があります。この関数は で定義されています。ヘッダー ファイルを作成し、最初の引数を 2 番目の引数で除算した浮動小数点の剰余を返します。

使用例

fmod( の使用方法の例を次に示します。 ) 2 を割った余りを計算しますdoubles:

#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
}
ログイン後にコピー

結論

剰余演算子は double に対して直接使用できませんが、fmod() 関数は浮動小数点に対して剰余演算を実行するための便利な代替手段を提供します。 -ポイント番号を使用すると、プログラミング タスクの残りを効果的に処理できるようになります。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート