C# - float.Parse - 在某些计算机上报错

C# - float.Parse - Report an error on some computers

统一版本:2020.3.11f1c1 问题:“float.Parse”在某些用户的计算机上报告错误 错误消息:FormatException:输入字符串不正确 format.System.Number.ParseSingle(System.String 值,System.Globalization.NumberStyles 选项,System.Globalization.NumberFormatInfo numfmt)(位于 <695d1cc93cca45069c528c15c9fdd749>:0) System.Single.Parse(System.String s,System.Globalization.NumberStyles 样式,System.Globalization.NumberFormatInfo 信息)(在 <695d1cc93cca45069c528c15c9fdd749>:0) System.Single.Parse (System.String 秒) (在 <695d1cc93cca45069c528c15c9fdd749>:0)

代码:float val = float.Parse("0.5"); 当然这里的“0.5”是静态数据中的table

此问题仅出现在部分玩家客户端,大部分玩家可以运行正常

您需要明确提供区域性,因为根据用户所在的地区,字符串可能会有不同的解释。

您可以使用 CultureInfo.InvariantCulture

float.Parse("0.5",CultureInfo.InvariantCulture)

您也可能 运行 遇到与其他问题相同的问题,例如 DateTime.ToString。这是人们在使用 Unity 进行开发时遇到的常见问题。

参见:https://docs.microsoft.com/en-us/dotnet/api/system.globalization.cultureinfo.invariantculture?view=net-6.0