c#美元对欧元的转换总是返回0
我想做一个美元兑欧元的转换器。但奇怪的是,它总是返回0。其目的是,用户,例如,c#美元对欧元的转换总是返回0,c#,json,webclient,clipboard,C#,Json,Webclient,Clipboard,我想做一个美元兑欧元的转换器。但奇怪的是,它总是返回0。其目的是,用户,例如,10美元兑换欧元,然后结果显示10美元比目前的欧元兑换多少这是我目前的代码 这是我的当前代码 public void EUR_TO_usd(string clipboardText) { ActionResult actionResult = new ActionResult(clipboardText);
10美元兑换欧元
,然后结果显示10美元比目前的欧元兑换多少这是我目前的代码
这是我的当前代码
public void EUR_TO_usd(string clipboardText)
{
ActionResult actionResult = new ActionResult(clipboardText);
if (clipboardText.EndsWith(" dollar to euro"))
{
var parts = clipboardText.Split(' ');
if (parts.Length == 4)
{
if (double.TryParse(parts[0], out double amount))
{
if (parts[1] == "dollar" && parts[2] == "to" && parts[3] == "euro")
{
string url = "http://api.openrates.io/latest?base=USD";
string json = new WebClient().DownloadString(url);
var currency = JsonConvert.DeserializeObject<dynamic>(json);
double curAmount = amount * Convert.ToSingle(currency.rates.EUR);
actionResult.Title = clipboardText;
actionResult.Description = string.Format("{0:N2} {1} = {2:N2} {3}", amount, currency["base"], curAmount, "EUR");
}
}
}
}
公开作废欧元兑美元(字符串剪贴簿文本)
{
ActionResult ActionResult=新的ActionResult(剪贴簿文本);
if(剪贴簿文本.EndsWith(“美元兑欧元”))
{
var parts=clipboardText.Split(“”);
如果(parts.Length==4)
{
if(双倍台巴色(部分[0],超出双倍金额))
{
如果(部分[1]=“美元”和部分[2]=“至”和部分[3]=“欧元”)
{
字符串url=”http://api.openrates.io/latest?base=USD";
string json=new WebClient().DownloadString(url);
var currency=JsonConvert.DeserializeObject(json);
double curAmount=金额*换算成单个(货币汇率欧元);
actionResult.Title=剪贴簿文本;
actionResult.Description=string.Format(“{0:N2}{1}={2:N2}{3}”,金额,货币[“基数],库拉索蒙特,“欧元”);
}
}
}
}
唯一有效的方法是将其放入开关中,并创建一个具有如下值的可变量
case "dollar to euro":
{
string url = "http://api.openrates.io/latest?base=USD";
string json = new WebClient().DownloadString(url);
var amount = 1;
var currency = JsonConvert.DeserializeObject<dynamic>(json);
double curAmount = amount * (double)currency.rates.EUR;
{
actionResult.Title = clipboardText;
actionResult.Description = $"{amount:N2} {currency.@base} = {curAmount:N2} EUR";
}
}
return actionResult;
案例“美元兑欧元”:
{
字符串url=”http://api.openrates.io/latest?base=USD";
string json=new WebClient().DownloadString(url);
风险价值金额=1;
var currency=JsonConvert.DeserializeObject(json);
double curAmount=金额*(双)货币汇率欧元;
{
actionResult.Title=剪贴簿文本;
actionResult.Description=$“{amount:N2}{currency.@base}={curAmount:N2}EUR”;
}
}
返回操作结果;
但是我想要的是,用户可以像我的第一个例子中那样复制欧元的数量,但它总是返回0。
如何解决此问题?我可能错了,但您似乎没有更改actionResult,只是更改了标题和描述。如果您只想返回一个int,我将使用
public int EUR\u to\u usd()
我将研究C#中的命名约定,因为函数名应该是而不是这样
当然,你需要用这个字符串调用你的函数。你试过调试它吗?从你的
剪贴簿文本中读取的量是否正确?你期望的是货币.rates.EUR
吗?在你的void方法中如何使用这个局部变量actionResult
(现在你似乎设置了它并忽略了它)?在确保文本以“美元对欧元”结尾,并且拆分结果为4个值后,确保最后三个值为“美元”“欧元”和“欧元”是无意义的。然后我该怎么做@juharr删除最后一个如果
,因为到那时它将始终为真。