为什么程序不将格里夫纳汇率转换为欧元?

瓦索克里

编写一个将格里夫纳汇率转换为$,Euro的程序。

一天中的好时光。我试图编写一个程序,使用官方网站上的当前汇率。请更正我的错误,并添加我做错的评论。谢谢你。

using System;
using System.Net;


namespace Currency_Converter
{
class Program
{
    static void Main()
    {
        Console.Write("Enter the amount of hryvnia: ");
        double uah = double.Parse(Console.ReadLine());
        double cource = GetCourse();
        Console.WriteLine("Euro exchange rate: " + cource);
        Console.WriteLine("{0} UAH. = {1} Euro.", uah, 
            Math.Round(uah / GetCourse(), 2));
        Console.ReadKey();
    }
    static double GetCourse()
    {
        WebClient client = new WebClient();
        client.Encoding = System.Text.Encoding.UTF8;
        string data = 
client.DownloadString("https://bank.gov.ua/ua/markets/exchangerates? 
date=20.02.2021&period=daily");
        string ff = data.Substring(data.IndexOf("<td>33,6478</td>"));
        ff = ff.Substring(ff.IndexOf("<td>") + 4);
        ff = ff.Remove(ff.IndexOf("</td>")).Replace('.', ',');
        return double.Parse(ff);
    }
}
}
鲍里斯·索科洛夫(Boris Sokolov)

您不应该使用网络拥挤,因为有官方的API:

using Newtonsoft.Json;
using System;
using System.Linq;
using System.Net;

namespace ConsoleApp2
{
    class Program
    {
        static void Main()
        {
            Console.Write("Enter the amount of hryvnia: ");
            double uah = double.Parse(Console.ReadLine());
            double cource = GetCourse();
            Console.WriteLine("Euro exchange rate: " + cource);
            Console.WriteLine("{0} UAH. = {1} Euro.", uah,
                Math.Round(uah / cource, 2));
            Console.ReadKey();
        }
        static double GetCourse()
        {
            WebClient client = new WebClient();
            client.Encoding = System.Text.Encoding.UTF8;
            string data = client.DownloadString("https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?json");
            var currencies = JsonConvert.DeserializeObject<Root[]>(data);
            return currencies.Where(c => c.cc.Equals("EUR", StringComparison.InvariantCultureIgnoreCase)).First().rate;
        }
    }

    public class Root
    {
        public int r030 { get; set; }
        public string txt { get; set; }
        public double rate { get; set; }
        public string cc { get; set; }
        public string exchangedate { get; set; }
    }
}

UPD。推荐使用HttpClient。我更喜欢Newtonsoft.Json,但是您可以使用任何其他库,例如System.Text.Json

using Newtonsoft.Json;
using System;
using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        static void Main()
        {
            Console.Write("Enter the amount of hryvnia: ");
            double uah = double.Parse(Console.ReadLine());
            double cource = GetCourse();
            Console.WriteLine("Euro exchange rate: " + cource);
            Console.WriteLine("{0} UAH. = {1} Euro.", uah,
                Math.Round(uah / cource, 2));
            Console.ReadKey();
        }

        static double GetCourse()
        {
            Task<double> task = Task.Run(async () => await GetCourseAsync());
            return task.Result;
        }

        static async Task<double> GetCourseAsync()
        {
            var client = new HttpClient();
            HttpResponseMessage response = await client.GetAsync("https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?json");
            response.EnsureSuccessStatusCode();
            string data = await response.Content.ReadAsStringAsync();
            var currencies = JsonConvert.DeserializeObject<Root[]>(data);
            return currencies.Where(c => c.cc.Equals("EUR", StringComparison.InvariantCultureIgnoreCase)).First().rate;
        }
    }

    public class Root
    {
        public int r030 { get; set; }
        public string txt { get; set; }
        public double rate { get; set; }
        public string cc { get; set; }
        public string exchangedate { get; set; }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么不将工作从NSData强制转换为String?迅速

来自分类Dev

为什么不将工作从NSData强制转换为String?迅速

来自分类Dev

为什么 JavaScript 不将类数组对象转换为数组?

来自分类Dev

为什么 Pandoc 不将 .tex 转换为 .pdf 但可以很好地转换 .md?

来自分类Dev

为什么不将'X'替换为空格

来自分类Dev

为什么groupby sum不将布尔值转换为int或float?

来自分类Dev

套接字编程-为什么我们不将sin_family转换为网络顺序?

来自分类Dev

为什么编译器不将“此”链接转换为与上下文无关的变量?

来自分类Dev

为什么C ++ 11不将lambda隐式转换为std :: function对象?

来自分类Dev

为什么不将此JavaScript对象转换为C#类对象?

来自分类Dev

为什么这段代码不将基类转换为c ++中的派生类?

来自分类Dev

为什么 C# 在将区域更改为 en 时不将“,”符号转换为双倍?

来自分类Dev

如何创建一个程序,将欧元转换为比索,反之亦然?

来自分类Dev

dart2js编译器为什么不将64位整数转换为IEEE 754 FP数字?

来自分类Dev

为什么不将shared_ptr派生到隐式转换为shared_ptr到Base

来自分类Dev

为什么在函数中返回shared_ptr时不将其隐式转换为布尔值?

来自分类Dev

dart2js编译器为什么不将64位整数转换为IEEE 754 FP数字?

来自分类Dev

为什么 J2ObjC 不将带有 @Weak 的字段转换为 __weak 但 __unsafe_unretained?

来自分类Dev

为什么BigQuery会将某些日期转换为时间戳而不将其他日期转换为时间戳?

来自分类Dev

如何将日期从格里高利安转换为Shamsi

来自分类Dev

为什么引导程序不将X图标用作关闭按钮?

来自分类Dev

将纳秒转换为日期时间

来自分类Dev

欧元符号转换为?使用FB和IBX的符号

来自分类Dev

PHP转换为C#的货币汇率

来自分类Dev

为什么/ dev / null是文件?为什么不将其功能实现为简单程序?

来自分类Dev

为什么在将其强制转换为void *类型之前需要复制Objective-C处理程序?

来自分类Dev

为什么我的JavaScript程序没有将其转换为整数而不是字符串?

来自分类Dev

为什么将Lambda转换为函数指针时我的C ++程序崩溃

来自分类Dev

为什么ASP.NET核心将源代码转换为程序集?

Related 相关文章

  1. 1

    为什么不将工作从NSData强制转换为String?迅速

  2. 2

    为什么不将工作从NSData强制转换为String?迅速

  3. 3

    为什么 JavaScript 不将类数组对象转换为数组?

  4. 4

    为什么 Pandoc 不将 .tex 转换为 .pdf 但可以很好地转换 .md?

  5. 5

    为什么不将'X'替换为空格

  6. 6

    为什么groupby sum不将布尔值转换为int或float?

  7. 7

    套接字编程-为什么我们不将sin_family转换为网络顺序?

  8. 8

    为什么编译器不将“此”链接转换为与上下文无关的变量?

  9. 9

    为什么C ++ 11不将lambda隐式转换为std :: function对象?

  10. 10

    为什么不将此JavaScript对象转换为C#类对象?

  11. 11

    为什么这段代码不将基类转换为c ++中的派生类?

  12. 12

    为什么 C# 在将区域更改为 en 时不将“,”符号转换为双倍?

  13. 13

    如何创建一个程序,将欧元转换为比索,反之亦然?

  14. 14

    dart2js编译器为什么不将64位整数转换为IEEE 754 FP数字?

  15. 15

    为什么不将shared_ptr派生到隐式转换为shared_ptr到Base

  16. 16

    为什么在函数中返回shared_ptr时不将其隐式转换为布尔值?

  17. 17

    dart2js编译器为什么不将64位整数转换为IEEE 754 FP数字?

  18. 18

    为什么 J2ObjC 不将带有 @Weak 的字段转换为 __weak 但 __unsafe_unretained?

  19. 19

    为什么BigQuery会将某些日期转换为时间戳而不将其他日期转换为时间戳?

  20. 20

    如何将日期从格里高利安转换为Shamsi

  21. 21

    为什么引导程序不将X图标用作关闭按钮?

  22. 22

    将纳秒转换为日期时间

  23. 23

    欧元符号转换为?使用FB和IBX的符号

  24. 24

    PHP转换为C#的货币汇率

  25. 25

    为什么/ dev / null是文件?为什么不将其功能实现为简单程序?

  26. 26

    为什么在将其强制转换为void *类型之前需要复制Objective-C处理程序?

  27. 27

    为什么我的JavaScript程序没有将其转换为整数而不是字符串?

  28. 28

    为什么将Lambda转换为函数指针时我的C ++程序崩溃

  29. 29

    为什么ASP.NET核心将源代码转换为程序集?

热门标签

归档