2

私はC ++で倍精度で%演算子を使用しようとしていますが、Javaでも同じことを行いましたが、正常に動作します。

ここに何か欠けているものがありますか、それとも許可されていませんか?申し訳ありませんが、C ++は初めてなので、ここで本当にばかげたエラーを起こしている可能性があります

    double i =  full_price_in_pence / 100.0;
    double j = full_price_in_pence % 100;
    int final_pounds = (int) i;
    int final_pence = (int) j;

これらは両方とも double 値です

full_price_in_pence
full_price_in_pounds
4

4 に答える 4

9

標準ヘッダーのstd::fmod()関数を使用する必要があります。<cmath>

#include <cmath>

// ...

double j = fmod(full_price_in_pence, 100);
于 2013-03-22T15:46:08.227 に答える
3

%は整数専用です。探しているのは ですfmod

于 2013-03-22T15:45:57.633 に答える
2

double 変数に % 演算子を使用することはできません。これを行うことができるのは int 変数のみです。

このような別の質問からいくつかの良い答えを確認できます。ここで見つけることができます。

于 2013-03-22T15:46:20.963 に答える
1

いいえ、許可されていません。演算子のオペランドは%整数型でなければなりません。std::fmod()代わりに使用してください。

于 2013-03-22T15:46:13.937 に答える