整数和无效操作数中的小数*已更新



我是C++的初学者,在一项作业中,我编写了数字到英语转换的代码。我的问题是从整数中取小数。根据建议,我将void扩展为双值,并更改了获取小数的代码,现在我收到了代码剩余部分的"double和int类型的无效操作数到二进制运算符%"。与(价值)有关吗?

void expand(double);
int main()
{
 ......
}
void expand(double value)
{
string const ones[20] = 
    { 
     " ...... "
    }           
if(value>1)
    {
    double decimalPart = value - (int)value;
    }
else if(value>=1000)
{
    expand(value/1000);
    cout<<" thousand";
    if(value % 1000)
.....
void expand(int value)

将以上内容更改为双倍,以使任何内容都能正常工作

void expand(double value)

此外,在更改上述后,您可以通过以下方式单独获得小数部分

double decimalPart = value - (int)value;

valueint,因此使用它进行的任何算术运算都将忽略小数部分。因此,当将num传递到expand函数时,您要做的是将其强制转换为int。因此,您正在删除小数。

double foo = 123.45;
expand(foo); // This will take only 123 and disregard the .45

void expand(double value)中将其声明为double,然后看看会发生什么。

最新更新