c# конвертация доллара в евро всегда возвращается 0 - PullRequest
0 голосов
/ 07 февраля 2020

Я пытаюсь сделать конвертер доллара в евро. но как ни странно, он всегда возвращает 0. Предполагается, что пользователь, например, 10 dollars to euro, а затем получается, сколько 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");
                            }
                        }
                    }
                }

единственное, что сработало, это поместил его в переключатель и создал переменную сумму со значением, подобным этому

                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;

но я хочу, чтобы пользователь мог скопировать количество евро, как в моем первом примере, но это всегда возвращает 0. Как мне решить эту проблему?

1 Ответ

0 голосов
/ 07 февраля 2020

Я могу ошибаться, но не похоже, что вы меняете actionResult, а только заголовок и описание. И если бы вы хотели просто вернуть int, я бы использовал public int EUR_TO_usd() И я бы посмотрел соглашение об именах в C#, так как имя функции shoud , а не , похоже на то, что imo.

И, конечно, вам нужно вызывать вашу функцию с этой строкой.

...