我是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;
value
是int
,因此使用它进行的任何算术运算都将忽略小数部分。因此,当将num
传递到expand函数时,您要做的是将其强制转换为int
。因此,您正在删除小数。
double foo = 123.45;
expand(foo); // This will take only 123 and disregard the .45
在void expand(double value)
中将其声明为double,然后看看会发生什么。