gpt4 book ai didi

c++ - 在 C++ 中的货币之间转换的程序中出现问题

转载 作者:搜寻专家 更新时间:2023-10-31 02:22:13 24 4
gpt4 key购买 nike

作为类(class)的一部分,我用 C++ 编写了一个简单的程序来在货币之间进行转换。它要求输入一个数值,然后输入一个字母(y、e 或 p)来表示一种受支持的货币。使用“y”或“p”时,您可以将数值和字符一起输入或用空格分隔(即:“100y”或“100 y”),这样就可以正常工作。但是,仅对于字母“e”,如果我同时输入这两个字母,则它不会被识别为有效输入。有谁知道为什么?

代码如下:

#include <iostream>

int main()
{
using namespace std;
constexpr double yen_to_dollar = 0.0081; // number of yens in a dollar
constexpr double euro_to_dollar = 1.09; // number of euros in a dollar
constexpr double pound_to_dollar = 1.54; // number of pounds in a dollar

double money = 0; // amount of money on target currency
char currency = 0;
cout << "Please enter a quantity followed by a currency (y, e or p): " << endl;
cin >> money >> currency;

if(currency == 'y')
cout << money << "yen == " << yen_to_dollar*money << "dollars." << endl;
else if(currency == 'e')
cout << money << "euros == " << money*euro_to_dollar << "dollars." << endl;
else if(currency == 'p')
cout << money << "pounds == " << money*pound_to_dollar << "dollars." << endl;
else
cout << "Sorry, currency " << currency << " not supported." << endl;

return 0;
}

最佳答案

当您输入 100e10e 时,它工作正常。 100e10 是科学记数法中的有效数字。 100e 不是科学记数法中的有效数字。它不会转换为 double 并且 money 被赋值为 0。变量 currency 保持不变。这就是您收到“抱歉,不支持货币”消息的原因。 e 在本例中属于一个数字,因为它符合科学记数法格式。

您可以为每种货币分配 4 个字符(例如 _EUR)。它将解决问题并且对用户更加友好。

关于c++ - 在 C++ 中的货币之间转换的程序中出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30551863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com