【发布时间】:2010-08-11 09:14:19
【问题描述】:
我正在尝试格式化文本框的内容:
this.lblSearchResults1.Text =
Convert.ToDouble(lblSearchResults1.Text).ToString();
如何修改此内容以使文本包含逗号/千位分隔符?
即1,000 而不是 1000。
【问题讨论】:
我正在尝试格式化文本框的内容:
this.lblSearchResults1.Text =
Convert.ToDouble(lblSearchResults1.Text).ToString();
如何修改此内容以使文本包含逗号/千位分隔符?
即1,000 而不是 1000。
【问题讨论】:
看着standard numeric format strings:
您可以最轻松地使用“N”,这将根据用户文化做正确的事情,因此在您的情况下,您只需将“N”作为参数添加到 ToString
([double]12345.67).ToString("N")
12,345.67
【讨论】:
对于完整的自定义控件,请使用... .ToString("#,##0.00") 或其变体。 . 和 , 将被文化相关符号替换。在欧洲大部分地区,您会得到 1.234,56。
另一个有用的图片是0.0#。
要根据用户(或选定的)文化使用模式,请使用The Numeric ("N") Format Specifier,如.ToString("N") 或"... {0:N}"。
【讨论】:
530000 变为 000,530
如果您仔细查看Standard Numeric Format Strings,您可以尝试以下方法之一:
.ToString("n", CultureInfo.GetCultureInfo("en-US"))
.ToString("n", CultureInfo.GetCultureInfo("de-DE"))
.ToString("n", CultureInfo.CurrentCulture)
【讨论】:
最简单的方法是:
Convert.ToDouble("1234567.12345").ToString("N")
如果你想控制小数位,你可以这样做:
Convert.ToDouble("1234567.12345").ToString("N3")
总体而言,查看 ToString 上的重载以获得更多令人兴奋的可能性。
【讨论】:
上述响应的替代方法是使用
this.lblSearchResults1.Text = String.Format("{0:N}", Convert.ToDouble(lblSearchResults1.Text))
如果您需要小数位,只需在 N 之后输入您希望的小数位数即可。以下示例将返回带 2 个小数位的值。
this.lblSearchResults1.Text = String.Format("{0:N2}", Convert.ToDouble(lblSearchResults1.Text))
更多信息请参见http://msdn.microsoft.com/en-us/library/system.string.format.aspx。
【讨论】:
double.Parse(Amount).ToString("N");
【讨论】:
不要将积分转换为 double 来执行此操作!
使用 NumberFormatInfo 辅助类,例如:
var nfi = new NumberFormatInfo() {
NumberDecimalDigits = 0,
NumberGroupSeparator = "."
};
var i = 1234567890;
var s = i.ToString("N", nfi); // "1.234.567.890"
【讨论】: