我试图去掉千分位,所以我正在尝试一些代码,但它会抛出异常。我尝试使用Convert.ToDouble
、Convert.ToDecimal
等方法。
报错信息如下:
Convert.ToDouble("1.234,45")
抛出了 'System.FormatException' 异常
这个转换错误发生在 Convert.ToDouble()
方法的这一行。
参数 n2
使用了 CultureInfo,但我也尝试过 "0.00",两种方式都抛出相同的异常。
整个想法是:如何去掉千分位,我的输入格式始终为 1.234,54(逗号为小数点,点为千分位)…… 我希望在 Textbox GotFocus 事件中使用它,因此格式应该显示为 12345,45。
所以:1.254,45 应该变成 1254,45,1.254,00 应该变成 1254,00。
//http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx
CultureInfo ci = CultureInfo.GetCultureInfo("NL-be");
NumberFormatInfo nfi = (NumberFormatInfo)ci.NumberFormat.Clone();
//Now force thousand separator to be empty string
nfi.NumberGroupSeparator = "";
//Format decimal number to 2 decimal places
string decimalFormatted = Convert.ToDouble("1.234,45").ToString("0.00", nfi);
string decimalFormatted = Convert.ToDouble("1.234,45").ToString("n2", nfi);
Convert.ToDouble("1.234,45", CultureInfo.InvariantCulture)
否则:Convert.ToDouble("1.234,45", CultureInfo.GetCultureInfo("en-gb"))
- Fendy