簡體   English   中英

生成十進制類型的往返字符串

[英]Produce a round-trip string for a decimal type

如果我想將double轉換為字符串並返回到完全匹配的double ,我會使用類似的東西:

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

但是,“R”格式沒有為十進制類型定義(您得到“FormatException:格式說明符無效”)。

生成十進制類型的往返字符串的方法是什么?

decimal往返的默認輸出格式,因此您無需執行任何特殊操作。 在這個意義上它就像int

Decimal實際上是二進制十進制值 (它使用10的基數,而不是Double 2 ),這就是為什么不需要像ToString("R")那樣的特殊精確表示;

  Decimal value = 123.456m;
  String result = value.ToString(CultureInfo.InvariantCulture); // <- That's enough 

另見詳情:

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

如果你試試,

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

您將看到您不需要任何額外的格式選項來獲得正確的string表示。

暫無
暫無

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

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