在c++中的双精度上使用%

using % on a double in c++

本文关键字:双精度 c++      更新时间:2023-10-16

im试图在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

您应该使用<cmath>标准标头中的std::fmod()函数:

#include <cmath>
// ...
double j = fmod(full_price_in_pence, 100);

%仅适用于整数,您正在查找fmod

不能对双变量使用%运算符。只有int变量可以执行此操作。

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

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