2

我试图在 c++ 中的 double 上使用 % 运算符,我在 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;

这些都是双重价值

full_price_in_pence
full_price_in_pounds
4

4 回答 4

9

您应该使用 Standard 标头中的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

您不能将 % 运算符用于双变量。只允许 int 变量这样做。

您可以从另一个这样的问题中检查一些好的答案;你可以在这里找到它们。

于 2013-03-22T15:46:20.963 回答
1

不,这是不允许的。运算符的操作数%必须是整数类型。改为使用std::fmod()

于 2013-03-22T15:46:13.937 回答