c# - 字符串转十进制之谜

标签 c# .net string decimal

我遇到了有关使用 C# .NET 从字符串转换为十进制的问题。问题是我编写了以下代码并且在我的开发 Windows 7 .NET Framework 3.5 系统上运行良好。但是,如果我将应用程序移动到 Windows 2003 Server .NET 3.5 Framework 上,结果就会不同。谁能理解那里发生了什么?

代码:

dec = Convert.ToDecimal(strDec);

Windows 7 结果:85.00 Windows 2003 结果:8500

最佳答案

可能是你服务器上的区域和文化设置用为十进制,.为数字分组。请参阅控制面板/区域和文化设置。

如果这个数字字符串是由您的应用程序生成的,我会在这两个地方使用 CultureInfo.InvariantCulture

     Decimal dec = 85.0m;
     string s = dec.ToString (CultureInfo.InvariantCulture);
     decimal.Parse(s, CultureInfo.InvariantCulture);

关于c# - 字符串转十进制之谜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6499003/

相关文章:

c# - 将文本文件中的数据加载到字典中

c# - 是否有可以与 ASP.NET 一起使用的堆叠饼图?

c# - 如何将 WebApiConfig 添加到我的 UmbracoApiController?

c# - 获取DataGrid宽度

c# - 带有脚手架编辑 Controller 的新 ASP.net 核心项目只返回 404 页面未找到

c# - 当使用参数重定向到另一个操作时,属性变为 NULL

c# - 如何将 NameValueCollection 转换为 Hashtable

algorithm - 颠倒单词的顺序——时间复杂度?

c++ - 6 智能感知 : no suitable conversion function from "std::string" to "int" exists

SQL Server 2008 : How to find trailing spaces