[英].NET Decimal.Parse throws a FormatException when using period as thousand separator
在.NET中,谁能告诉我这为什么起作用:
Decimal.Parse("1,234.56", CultureInfo.GetCultureInfo("en-US"));
但这会引发System.FormatException吗?
Decimal.Parse("1.234,56", CultureInfo.GetCultureInfo("fr-FR"));
是否存在一种建议的解析欧洲数字的方法,其中可能包含句点作为千位分隔符和逗号作为小数点?
谢谢!
法语CultureInfo
的NumberFormatInfo
使用空格作为NumberGroupSeparator
因此可以正常工作,例如:
Decimal.Parse("1 234,56", CultureInfo.GetCultureInfo("fr-FR"));
如果要使用.
作为千位分隔符,您需要一种文化,即NumberGroupSeparator
。 例如,您可以使用西班牙语:
using System;
using System.Globalization;
class Test
{
static void Main()
{
var culture = (CultureInfo) CultureInfo.GetCultureInfo("es-ES");
var d = Decimal.Parse("1.234,56", culture);
Console.WriteLine(d);
}
}
或修改其他文化:
using System;
using System.Globalization;
class Test
{
static void Main()
{
// Call clone to make sure it's mutable
var culture = (CultureInfo) CultureInfo.GetCultureInfo("fr-FR").Clone();
culture.NumberFormat.NumberGroupSeparator = ".";
var d = Decimal.Parse("1.234,56", culture);
Console.WriteLine(d);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.