Точная конверсия (валюта и центы с помощью fmod) - PullRequest
0 голосов
/ 25 марта 2019

Если я конвертирую 5 долларов в евро, это должно быть 4,45 или 4 евро и 45 центов проблема в том, что я получаю 4 и 0,55 вместо 0,45 или есть способ получить 45 центов?

enter code here
int main() {

double usd = 0, euro = 0;
double fixeuro = 0.89;
cout << "Please add amount to convert it\n";
cin >> usd;
int conv = usd * fixeuro;
cout << conv  << "\n";
cout << fmod(usd,fixeuro);

return 0;}

1 Ответ

0 голосов
/ 25 марта 2019

Способ получения правильной суммы: double conv = usd * fixeuro; Тогда, если вы хотите получить только евро, это int euros = conv;, а просто евроценты - int eurocents = 100 * (conv - euros); Или, если хотите, вы можете использовать 100 * fmod(conv, 1.0).

fmod(usd,fixeuro) не имеет никакого очевидного значения.Это то, что у вас остается, когда у вас есть 5 долларов и вы начнете выбрасывать ровно 89 центов за раз, пока у вас не будет меньше 89 центов.89 центов США не соответствуют какой-либо интересной сумме в евро, а центы США не являются евроцентами, поэтому не совсем понятно, что вы получаете от этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...