Я новичок в 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
в функцию расширения приводит его как int
, Следовательно, вы удаляете десятичные дроби.
double foo = 123.45;
expand(foo); // This will take only 123 and disregard the .45
Объявите это как двойной в void expand(double value)
и посмотрим, что получится.