Vov*_*pov 1 .net c# string double
我需要知道是否有办法string用非普通格式解析a double,例如:
string str = "1.500,43";
Run Code Online (Sandbox Code Playgroud)
至
double num = 1500.43;
Run Code Online (Sandbox Code Playgroud)
我的尝试没有用.我得到了0:
double number=0;
double.TryParse("1.500,43", out number);
Run Code Online (Sandbox Code Playgroud)
我知道我可以删除"." 和更改",",以"."比做TryParse,但我想另谋出路.
有谁知道如何做到这一点?
如果你不使用任何IFormatProvider与您的double.TryParse方法,它使用的CurrentCulture默认.
可能你CurrentcCulture的NumberDecimalSeparator或/和NumberGroupSeparator属性与,和不匹配..
作为一个解决方案,您可以.Clone您CurrentCulture和设置这些属性喜欢;
var culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.NumberFormat.NumberDecimalSeparator = ",";
culture.NumberFormat.NumberGroupSeparator = ".";
double number;
if(double.TryParse("1.500,43", NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands,
culture, out number))
{
// Successful parsing
}
Run Code Online (Sandbox Code Playgroud)
通常,替换你的.和,字符串方法不是一个好主意.