在.NET中,任何人都可以告诉我为什么这样有效:
Decimal.Parse("1,234.56", CultureInfo.GetCultureInfo("en-US"));
Run Code Online (Sandbox Code Playgroud)
但这会引发System.FormatException?
Decimal.Parse("1.234,56", CultureInfo.GetCultureInfo("fr-FR"));
Run Code Online (Sandbox Code Playgroud)
是否有推荐的方法来解析欧洲数字,这些数字可能包含一个句点作为千位分隔符而一个逗号作为小数点?
谢谢!
法国CultureInfo人NumberFormatInfo使用空间作为NumberGroupSeparator- 所以这有用,例如:
Decimal.Parse("1 234,56", CultureInfo.GetCultureInfo("fr-FR"));
Run Code Online (Sandbox Code Playgroud)
如果你想.用作千位分隔符,那么你需要一种文化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);
}
}
Run Code Online (Sandbox Code Playgroud)
或修改另一种文化:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
144 次 |
| 最近记录: |