我有很多小数,每个小数都不同:
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);
是否有通用方法为千位分隔符插入逗号,同时保持原始小数舍入相同?
答案 0 :(得分:2)
尝试使用格式。
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));
答案 1 :(得分:1)
对于任何想知道的人,我最终使用String.Format(new CultureInfo("en-US"), "{0:N}", difference)
并根据我需要的小数位数更改了N
。
答案 2 :(得分:0)
您可以使用“N”格式说明符,并提供您希望保留任何数字的位数。如果您希望每个数字可能具有不同的位数,则您必须确定每次都要提供给格式字符串的数字。
quantity.ToString("N(digits)");
完整文档位于http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx#NFormatString