Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# float.TryParse忽略小数点_C#_.net Core - Fatal编程技术网

C# float.TryParse忽略小数点

C# float.TryParse忽略小数点,c#,.net-core,C#,.net Core,我正在windows上使用visual studio代码,使用最新的asp.net内核创建mvc应用程序 当我运行此代码时: string number = "13,89"; float convertedNumber = -1f; bool result = float.TryParse(number, NumberStyles.Any, CultureInfo.InvariantCulture, out convertedNumber); 我得到的结果=true,表示解析成功,但实际的co

我正在windows上使用visual studio代码,使用最新的asp.net内核创建mvc应用程序

当我运行此代码时:

string number = "13,89";
float convertedNumber = -1f;
bool result = float.TryParse(number, NumberStyles.Any, CultureInfo.InvariantCulture, out convertedNumber);
我得到的结果=true,表示解析成功,但实际的convertedNumber=1389

我尝试了不同的文化,不同的数字风格,但我就是不明白。我会理解得到的结果=假,但不是这个。我也不知道如何修复它

c fiddle为方便起见:

如果希望float.TryParse将作为十进制分隔符而不是千位分隔符处理,则应使用逗号作为十进制分隔符的区域性,如Dutch:

bool result = float.TryParse(number, NumberStyles.Any, new CultureInfo("nl-nl"), out converted);
如果要将float.TryParse视为十进制分隔符而不是千位分隔符,则应使用逗号作为十进制分隔符的区域性,如Dutch:

bool result = float.TryParse(number, NumberStyles.Any, new CultureInfo("nl-nl"), out converted);
,被解释为千位分隔符,而不是小数点。例如,这将起作用:

string number = "13.89";
或者,使用逗号用作小数的区域性,例如法语:

string number = "13,89";
float convertedNumber = -1f;
var culture = CultureInfo.GetCultureInfo("fr-FR");
bool result = float.TryParse(number, NumberStyles.Any, culture, out convertedNumber);
,被解释为千位分隔符,而不是小数点。例如,这将起作用:

string number = "13.89";
或者,使用逗号用作小数的区域性,例如法语:

string number = "13,89";
float convertedNumber = -1f;
var culture = CultureInfo.GetCultureInfo("fr-FR");
bool result = float.TryParse(number, NumberStyles.Any, culture, out convertedNumber);

,是千位分隔符,对于不变区域性,不是小数点。如果您放置一个特定的区域性,比如说,俄语:CultureInfo.getcultureinfo-RU,您将使用十进制分隔符和。千位分隔符是否会尝试不同的区域性?您是否尝试过使用小数点作为小数点?您的问题是:为什么它不会失败?有趣的是,这不是一个有效的字符串,因为千位分隔符是千位分隔符,而不是不变区域性的小数点。如果您放置一个特定的区域性,比如说,俄语:CultureInfo.getcultureinfo-RU,您将使用十进制分隔符和。千位分隔符会尝试不同的文化吗?你有没有尝试过任何使用小数点的方法?你的问题是:为什么它不会失败?有趣的是,虽然这不是一个有效的字符串,但是,作为千位分隔符