簡體   English   中英

如何成功地將雙精度轉換為字符串

[英]How do I successfully convert a double to string

我有一個購買金額,我試圖將其從雙精度轉換為字符串,並且我不斷收到錯誤消息,顯示輸入字符串的格式不正確。 在這條線上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;
}

您從外部來源接收匯率。 因此,當您嘗試將速率字符串轉換為雙倍時,可能會發生“輸入字符串的格式不正確”錯誤。 如果可能的話,使用TryParse而不是 Convert 來安全地將字符串轉換為雙精度。

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM