float.TryParse忽略小数点

aac*_*cid 1 c# .net-core

我在windows上使用visual studio代码,使用最新的asp.net核心创建mvc app.

当我运行此代码时:

string number = "13,89";
float convertedNumber = -1f;
bool result = float.TryParse(number, NumberStyles.Any, CultureInfo.InvariantCulture, out convertedNumber);
Run Code Online (Sandbox Code Playgroud)

我得到result = true,表明解析成功,但实际的convertedNumber = 1389;

我尝试了不同的文化,不同的数字形式,我只是不明白.我会理解得到结果=假,但不是这个.我不知道如何解决它.

c#方便起见:https://dotnetfiddle.net/0ZDwis

Dav*_*idG 5

,被解释为千位分隔符,而不是小数点.例如,这将起作用:

string number = "13.89";
Run Code Online (Sandbox Code Playgroud)

或者,使用逗号作为小数的文化,例如法语:

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