我需要在小数类型的变量中显示一些数字。

我想按原样显示它们,这ToString("G29")给了我。

但是,我想添加一个千位分隔符。 ToString("N")给了我数千个分隔符,但完全失去了“ G29优点”。

是否有一个简单的解决方案来获取我想要的显示字符串?

   值“ N”“ G29”我想要什么
==============================================
296018.413 296,018.41 296018.413 296,018.413
652609 652,609.00 652609 652,609
296.018413 296.02 296.018413 296.018413
326.305 326.31 326.305 326.305


编辑:

最近另一个SO问题/答案使我意识到,“ G29”以科学计数形式返回的值小于0.0001。因此,当我写问题时,我并不知道该解决方案需要处理以下特殊情况:

  珍惜我想要的
=========================
0.00001 0.00001
12345.000067 12,345.000067

最佳答案

您可能需要做一些工作。
这个怎么样?

decimal d = 34561.2223400M;
string decimalPart = (d - (int)d).ToString("G29");
string integerPart = d.ToString("##,###");
string finalNumber = integerPart + decimalPart.Substring(1,decimalPart.Length-1);;

10-06 05:24