准确的转换(使用fmod的货币和美分)

时间:2019-03-24 21:43:05

标签: c++11

如果我将5 USD转换为欧元,应该是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 :(得分:0)

获取正确金额的方法是double conv = usd * fixeuro;,然后,如果您只想获取欧元,那就是int euros = conv;,而只想获取欧元分是int eurocents = 100 * (conv - euros);,或者,如果您愿意,可以使用100 * fmod(conv, 1.0)

fmod(usd,fixeuro)似乎没有任何明显的含义。当您有5美元并开始一次扔掉精确的89美分直到您的收入少于89美分时,这就是剩下的。 89美分并不等于任何有趣的欧元金额,而美分也不是欧元美分,因此目前尚不清楚您从中得到什么。