0

我有很多小数,每个小数都不同:

decimal quantity = Decimal.Round(item.Quantity.Value, 2, 
    MidpointRounding.AwayFromZero);
decimal difference = Decimal.Round(quantity * eva, 0, 
    MidpointRounding.AwayFromZero);

绑定到 UI 时,我转换为这样的字符串:

string Quantity = quantity.ToString("G", CultureInfo.InvariantCulture);
string Difference = difference.ToString("G", CultureInfo.InvariantCulture);

是否有一种通用方法可以为千位分隔符插入逗号,同时保持原始小数舍入相同?

4

3 回答 3

3

尝试使用格式。

        double d = 1.234567;
        String output = d.ToString("#,##0.##");

还,

double d = 123456789.1;
string format = d.ToString().
                  IndexOf(NumberFormatInfo.CurrentInfo.NumberDecimalSeparator) 
                  >=0 ? "#,##0.00" : "#,##0";
Console.WriteLine (d.ToString(format));
于 2013-08-15T14:52:42.380 回答
2

对于任何想知道的人,我最终使用String.Format(new CultureInfo("en-US"), "{0:N}", difference)并更改了N取决于我需要多少小数位。

于 2013-08-15T18:11:03.270 回答
0

您可以使用“N”格式说明符并提供您希望任何数字保留的位数。如果您希望每个数字可能具有不同的位数,则您必须确定每次提供给格式字符串的数字。

quantity.ToString("N(digits)");

完整的文档位于http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx#NFormatString

于 2013-08-15T14:57:56.343 回答