gpt4 book ai didi

c++ - 使用 % 运算符时出现 double 错误

转载 作者:太空宇宙 更新时间:2023-11-03 10:40:11 25 4
gpt4 key购买 nike

我正在研究一个问题,该问题要求创建一个类 Rational,将变量作为分子和分母,以及一个将两个有理数相加的函数。

这是我创建的类:

class Rational
{
public:
// n stands for numerator and d stands for denominator
double n,d;
// add stands for addition
void add(Rational r1, Rational r2);
};

这是我的职能:

void Rational::add(Rational r1, Rational r2)
{
// ar stands for rational number after addition
double ar;
// new object which takes the value after addition
Rational r3;
// formula for numerator after addition
r3.n=(r1.n*r2.d)+(r2.n*r1.d);
// formula for denominator after addition
r3.d=(r1.d*r2.d);
// ratio equals divisor plus quotient multiplied to remainder
ar=(r3.n/r3.d)+((r3.n)%(r3.d))*r3.d;
}

最后一行在编译时产生如下错误:

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

我是 cpp 的新手,这是我的作业...请帮忙...

最佳答案

(r3.n)%(r3.d)

nddouble 类型。运算符 %(取模)仅适用于整数。

作为@Cheers 和 hth。 - Alf 在评论中友善地指出,最好的解决方案是将 nd 声明为整数,因为表示有理数会更连贯。

如果你不能这样做并且真的有理由使用 double ,你将不得不使用 std::fmod相反:

std::fmod(r3.n, r3.d)

关于c++ - 使用 % 运算符时出现 double 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41180546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com