生成十进制类型的往返字符串

时间:2014-01-23 14:05:46

标签: c# type-conversion

如果我想将 double 转换为字符串并返回到完全匹配的 double ,我会使用类似的内容:< / p>

double d1 = 1 / 3.0;
string s = d1.ToString("R");
double d2 = double.Parse(s);

但是,没有为十进制类型定义“R”格式(您得到“FormatException:格式说明符无效”)。

为十进制类型生成往返字符串的方法是什么?

3 个答案:

答案 0 :(得分:12)

decimal往返的默认输出格式,因此您无需执行任何特殊操作。就像那个意义上的int一样。

答案 1 :(得分:3)

Decimal实际上是二进制十进制值(它使用 10 的基数,而不是 2 ,如{{ 1}})这就是为什么不需要像Double这样的特殊精确表示;

ToString("R")

另见详情:

http://csharpindepth.com/articles/general/decimal.aspx

答案 2 :(得分:1)

如果你试试,

decimal d1 = 1m / 3;
string s = d1.ToString();
decimal d2 = decimal.Parse(s);
// where d1 == d2 = true

您将看到您不需要任何额外的格式选项来获得正确的string表示。

相关问题