部署 c# 后将字符串转换为浮点数时出错

本文关键字:浮点数 出错 转换 字符串 部署 | 更新日期: 2023-09-27 18:32:30

我有一个格式异常,当我想在部署C#Windows应用程序后将字符串转换为float时。

我试过了

string  str1 = "12.4",
float str2 = float.parse(str1);  
// it works on my computer but after deployment NOT !
当我在计算机中运行代码时,

它可以正常工作,但是当我在其他计算机中运行它时,当我添加"123.4"之类的数字时,我有一个"format_exception"我尝试安装其他框架,但没有任何变化

部署 c# 后将字符串转换为浮点数时出错

您的计算机和服务器计算机上有不同的区域性。

用:

float number = float.Parse(str, CultureInfo.InvariantCulture);

很可能这些系统上安装了不同的区域性。

你应该试试这个:

string str1 = "12.4";
float flt1 = float.Parse(str1, CultureInfo.InvariantCulture);

它将使用 . 作为小数分隔符。

您可以通过以下方式指定其他区域性信息,例如:使用调用线程的 UI 区域性信息:Thread.CurrentThread.CurrentUICulture

float.Parse依赖于区域性,如 msdn 所述:https://msdn.microsoft.com/en-US/library/2thct5cb%28v=vs.110%29.aspx

这取决于机器。