我如何成功将双精度型转换为字符串

问题描述 投票:0回答:1

我有一个购买金额,我试图将其从双精度转换为字符串,但不断出现错误消息输入字符串的格式不正确。此行在此处var amount = (ol.Amount*Convert.ToDouble(exchange)).ToString("0.##");

我的代码

var exchange=GetNigerianExchange();
var amount = (ol.Amount*Convert.ToDouble(exchange)).ToString("0.##");





private static string GetNigerianExchange()
{
    var forex = "https://www.alphavantage.co/query?function=CURRENCY_EXCHANGE_RATE&from_currency=ZAR&to_currency=NGN&apikey=ZRH58691ZX2ENX1U&datatype=json";
    var JsonResult = "";

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(forex);
    request.ContentType = "application/json; charset=utf-8";
    HttpWebResponse response = request.GetResponse() as HttpWebResponse;
    using (Stream responseStream = response.GetResponseStream())
    {
        StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
        JsonResult = reader.ReadToEnd();
    }

    JavaScriptSerializer serializer = new JavaScriptSerializer();
    dynamic jsonObject = serializer.Deserialize<dynamic>(JsonResult);

    dynamic x = jsonObject["Realtime Currency Exchange Rate"];
    var exchange = (string)jsonObject["Realtime Currency Exchange Rate"]["5. Exchange Rate"];

    return exchange;
}
c# asp.net-mvc type-conversion double
1个回答
0
投票

您从外部来源获得汇率。因此,当您尝试将速率字符串转换为双精度时,可能会发生“输入字符串的格式不正确”错误。如果可能,请使用TryParse而不是仅将Convert安全地将字符串转换为double。

var exchange=GetNigerianExchange();
double exchangeRate = 1;
if (!Double.TryParse(value, out exchangeRate)) {
    // do something for case when you cannot convert rate to double
}

var amount = (ol.Amount * exchangeRate).ToString("0.##", CultureInfo.InvariantCulture);
© www.soinside.com 2019 - 2024. All rights reserved.