首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将CAD转换为美元,

将CAD转换为美元,
EN

Stack Overflow用户
提问于 2019-01-20 06:21:41
回答 2查看 362关注 0票数 0

我正在写一个简单的安卓应用程序来转换CAD到美元,它的工作,但我总是使用相同的汇率,所以我想从互联网上自动获得费率,我怎么做呢?

这是我的代码:

代码语言:javascript
复制
public void currencyChange (View view){
    double usd = 0;
    String value;
    DecimalFormat finalUSD = new DecimalFormat("0.00");//To print just 2 decimals numbers
    Log.i("info","Button pressed");

    EditText cad = (EditText) findViewById(R.id.DollarEditText);
    value = cad.getText().toString();//Converting the value to string
    Log.i("amount in CAD ", cad.getText().toString());
    usd = Double.valueOf(value).doubleValue();

    usd = usd * 0.76; // ****  RATE   ****

    Log.i("amount in USD ", Double.toString(usd));




    Toast.makeText(this,value + " CAD" + " => " + finalUSD.format(usd) + " USD",Toast.LENGTH_LONG).show();}

谢谢你的帮助!

EN

回答 2

Stack Overflow用户

发布于 2019-01-20 06:40:18

Fixer是一个很好的选择,它的免费注册限制了你每月1,000次呼叫和每小时更新一次数据。当您注册时,您将获得一个访问密钥,然后您可以在请求中使用它,如下所示:

代码语言:javascript
复制
https://data.fixer.io/api/latest?access_key=MY_ACCESS_KEY

响应将采用以下格式:

代码语言:javascript
复制
{
    "success": true,
    "timestamp": 1547937308,
    "base": "EUR",
    "date": "2019-01-19",
    "rates": {
        "AED": 4.177162,
        "AFN": 85.692162,
        ...
        "CAD": 1.507594,
        ...
        "USD": 1.137249,
        ...
    }
}

现在您有了加元/欧元(欧元是固定基础货币)和美元/欧元的汇率。通过链接这些汇率,您可以获得所需的CAD/USD汇率。

代码语言:javascript
复制
usd_cad_rate = eur_cad_rate / eur_usd_rate
usd_cad_rate = 1.507594 / 1.137249 = 1.325649
票数 0
EN

Stack Overflow用户

发布于 2019-01-20 07:06:10

你可以使用欧洲央行的每日外汇汇率:https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/html/index.en.html

请阅读免责声明,但他们在其网站上为开发人员提供了一个PHP示例。据我所知,除了将它们命名为source之外,没有其他限制。

代码语言:javascript
复制
    String fxRates = "https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml";
    URLConnection httpcon = new URL(fxRates).openConnection();

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db;
    try {
      db = dbf.newDocumentBuilder();
      Document doc = db.parse(httpcon.getInputStream());

      NodeList cubes = doc.getElementsByTagName("Cube");
      double fxEurCad = 0.0;
      double fxEurUsd = 0.0;

      for (int i = 0; i < cubes.getLength(); i++) {
        Node cube = cubes.item(i);
        Node currency = cube.getAttributes().getNamedItem("currency");
        Node rate = cube.getAttributes().getNamedItem("rate");
        if (null != currency && "CAD".equals(currency.getNodeValue())) {
          fxEurCad = Double.parseDouble(rate.getNodeValue());
        }
        if (null != currency && "USD".equals(currency.getNodeValue())) {
          fxEurUsd = Double.parseDouble(rate.getNodeValue());
        }
      }

      double fxCadUsd = fxEurCad/fxEurUsd;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54271883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档