[英]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.