C# 从 XE 获取当前汇率

2023-12-07


我需要在我的应用程序上显示当前汇率。
是否可以检索汇率http://www.xe.com(XE转换器)
这是我尝试过的:

public string CurrencyConversion(decimal amount, string fromCurrency, string toCurrency)
        {
            string Output = "";
             string fromCurrency1 = comboBox1.Text;
             string toCurrency1 = comboBox2.Text;
             decimal amount1 = Convert.ToDecimal(textBox1.Text);

            // For other currency symbols see http://finance.yahoo.com/currency-converter/
            // Construct URL to query the Yahoo! Finance API

            const string urlPattern = "http://finance.yahoo.com/d/quotes.csv?s={0}{1}=X&f=l1";
            string url = string.Format(urlPattern, fromCurrency1, toCurrency1);

            // Get response as string
            string response = new WebClient().DownloadString(url);

            // Convert string to number
            decimal exchangeRate =
                decimal.Parse(response, System.Globalization.CultureInfo.InvariantCulture);

            // Output the result
            Output = (amount1 * exchangeRate).ToString();
            textBox2.Text = Output;

            return Output;
        }

使用这段代码,我没有完整的输出......小数部分不是
显示...


是的,XE 提供API但它只是付费的。 制作一个自动化工具来提取数据是not允许。 (source)

我尝试了你的代码,它对我有用。你到底是什么意思the decimal part is not showing ?

public string CurrencyConversion(decimal amount, string fromCurrency, string toCurrency)
{
    string url = string.Format(urlPattern, fromCurrency, toCurrency);

    using (var wc = new WebClient())
    {
        var response = wc.DownloadString(url);
        decimal exchangeRate = decimal.Parse(response, CultureInfo.InvariantCulture);

        return (amount * exchangeRate).ToString("N3");
    }
}

测试代码:

Console.WriteLine($"$ 5 = € {CurrencyConversion(5m, "USD", "EUR")}");
Console.WriteLine($"£ 20 = $ {CurrencyConversion(20m, "GBP", "USD")}");

Result:

$ 5 = € 4,661
£ 20 = $ 25,616

EDIT

使用 NuGet 获取 Newtonsoft.Json

PM> Install-Package Newtonsoft.Json

Code:

private const string urlPattern = "http://rate-exchange-1.appspot.com/currency?from={0}&to={1}";
    public string CurrencyConversion(decimal amount, string fromCurrency, string toCurrency)
    {
        string url = string.Format(urlPattern, fromCurrency, toCurrency);

        using (var wc = new WebClient())
        {
            var json = wc.DownloadString(url);

            Newtonsoft.Json.Linq.JToken token = Newtonsoft.Json.Linq.JObject.Parse(json);
            decimal exchangeRate = (decimal)token.SelectToken("rate");

            return (amount * exchangeRate).ToString();
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 从 XE 获取当前汇率 的相关文章

随机推荐

  • Spring MVC 事务控制器

    我正在尝试获取一个 Spring MVC 控制器方法 该方法已用 Transactional 注释 如果在该方法返回之前在客户端拉动网络电缆 则该方法将回滚 我似乎无法让它工作 这是一个示例我想要实现的目标 Transactional ro
  • Python 中出现“意外缩进”该怎么办?

    如何纠正 Python 中的 意外缩进 错误 Python 使用行开头的空格来确定代码块的开始和结束时间 您可能遇到的错误有 意外的缩进 这行代码的开头比前一行有更多的空格 但前一行不是子块的开头 例如 if while and for声明
  • 将形状复制到空白画布(OpenCV、Python)

    import numpy as np import cv2 blank image np zeros 40 40 3 np uint8 blank image fill 255 cv2 imshow i blank image cv2 wa
  • Facebook Feed 对话框移动网址:display=wap 问题

    我正在使用此 url 将我的移动网页定向到 Facebook 墙帖对话框页面 但是我似乎无法获取display wap上班 http m facebook com dialog feed app id
  • 为什么我不能继承 Enum 的子类?

    考虑以下代码 from enum import Enum class SubclassOfEnum Enum x 5 print SubclassOfEnum x class SubSubclassOfEnum SubclassOfEnum
  • Android,如何将CSS应用到WebView中?

    我想使用 WebView 以便向用户显示一些段落 在 XML 中 我编写了以下代码
  • RedirectToLocal() 转到不同的 url

    以下代码片段来自我的 ASP NET MVC 5 应用程序 public ActionResult Ask string id if this User Identity IsAuthenticated string retUrl Requ
  • 自定义验证不起作用 - Yii2-app-basic-Yii2

    我昨天发布了一个关于单选按钮自定义验证的问题单选按钮上的强制文本字段 我得到了答案 但是 这并不是准确的答案 但是 它解决了我的一个问题 实际上 我有 2 个单选按钮 个人 Firm 当选择具有 个人 值的单选按钮时 公司名称文本框不应是强
  • Typescript:具有不同参数的泛型数组

    考虑一个这样调用的函数 func object object1 key someKeyOfObject1 object object2 key someKeyOfObject2 它有一个数组 我想强制执行key字段保存所保存对象的键obje
  • 将 Java 代码从 Java 8 语法解析为 Java 7 语法的工具? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 有谁知道有什么工具可以将使用 lambda 和方法引用的 Java 8 代码 在源代码级别 转换为使用匿名内部类的 Java 7 代码吗 我知道关于
  • PyQt 作为 Windows APPCRASH 崩溃

    我有一个非常短的 PyQt 程序 注意 这是一个 PythonFiddle 链接 这似乎在 Firefox 中严重崩溃 因此代码也发布在下面 它将输出打印到QTextEdit 使用代码从这个答案 当我运行代码 在 Windows 上 时 它
  • 使用 Cucumber 截图

    我刚刚学会如何使用黄瓜 你能告诉我如何完成这段代码吗 您可以使用以下代码片段实现未定义步骤的步骤定义 Then I take a screenshot do pending express the regexp above with the
  • java中如何将字符串转换为运算符

    我想转换一些String对于这样的操作员 int value 1 int valueToCompare 3 String operation lt if value operation valueToCompare some operati
  • 我需要使用多个using 语句吗?

    出于实用性考虑 这两个类都是一次性的 我了解 using 块的作用 但我不确定它可以或需要使用的所有方式 例如 这是正确的吗 using MyClass myClass new MyClass params myClass name Ste
  • Numpy:我应该使用 newaxis 还是 None?

    在 numpy 中 可以使用切片语法中的 newaxis 对象来创建长度为 1 的轴 例如 import numpy as np print np zeros 3 5 np newaxis shape shape will be 3 1 5
  • Internet Explorer 页面上的 SendMessage user32dll

    我的桌面上打开了一个 Internet Explorer 页面 网页名称为TEST 使用 user32 dll 中的 FindWindow 我可以在窗口上获取处理程序 在此页面中 我有一个名为 Go 的按钮 还有两个名为 Name 和 Su
  • 自动从 Google AppMaker 数据源导出数据

    有谁知道我们怎样才能生成报告从数据中数据源在 Google AppMaker 中自动地 例如 在凌晨 12 点生成报告 而不是每次用户需要报告时手动单击部署中的导出数据 我在上面看到过类似的东西从 Google AppMaker 导出数据但
  • 使用 CData 部分包装属性 - XML 序列化 C#

    我需要以这样的方式序列化我的对象 即我想要的属性将包裹在 CData 部分中 我希望我能做这样的事情 public class Order JsonProperty public int OrderId get set JsonProper
  • 如何在 WCF 服务中同步数据库访问?

    我以前使用过 WCF 服务 现在我有一个新项目即将开始 我仍处于设计阶段 我想知道处理以下场景的最佳方法是什么 我将让多个客户端同时连接到我的 WCF 服务 在服务上触发不同的方法 操作合约 A 触发的一些方法只是纯粹的 读取 方法 例如
  • C# 从 XE 获取当前汇率

    我需要在我的应用程序上显示当前汇率 是否可以检索汇率http www xe com XE转换器 这是我尝试过的 public string CurrencyConversion decimal amount string fromCurre