【发布时间】:2013-06-24 05:14:36
【问题描述】:
我需要将字符串转换回双精度,但字符串的格式并不总是相同。在一种情况下是“N0”,在另一种情况下是“#,##”,还有一种是货币“C0”。好消息是,我知道字符串的格式,就像在它从双精度转换为字符串的过程中一样。
如何转换回双精度。仅数字值 double.parse 或 Convert.ToDouble 很容易,但货币值不会。
string format = "{0:C0}";
double dollar = 1,234.00;
string dollarString = String.Format(format, doubleValue); // == "$1,234"
double newDollar = Convert.ToDouble(dollarString); // Fails
最后一行是问题所在。我假设我需要使用 IFormatProvider 或 Culture 或其他东西,但我不确定。
我无法具体提及格式是货币,因为“格式”并不总是货币。
想法?
【问题讨论】:
标签: c#