【发布时间】:2014-05-05 13:11:33
【问题描述】:
我正在使用带有 C# 的 .NET 3.5 框架 我的应用程序将在全球范围内使用。 (Windows 7、64 位)
我有一个双精度/浮点数,稍后会转换为字符串。
但在不同的操作系统上,它会改变像 46.57 这样的值变成 46,57
我怎样才能阻止这种情况? .NET 可以在内部处理这个吗?
下面是我的代码;
Decimal lon = Convert.ToDecimal(dt.Rows[j]["lon"]);
Decimal lat = Convert.ToDecimal(dt.Rows[j]["lat"]);
lon = lon / 100000;
lat = lat / 100000;
string longitude = Convert.ToString(lon);
string latitude = Convert.ToString(lat);
【问题讨论】:
-
因为你的操作系统有不同的
CurrentCulture。 -
我如何编码才能在所有操作系统上工作?
-
这是默认行为,在大多数情况下,这是可取的(用户以他们期望的格式查看十进制数字和日期的格式)。当您正在写入文本文件或 XML 文件并希望确保保存在一种文化中的数据在另一种文化中可读时,这没有有用。
-
@Hardik 这不取决于您的操作系统。 这取决于您的操作系统当前的文化。 正如我在回答中所说,如果您的两个操作系统具有相同的文化,那将没问题。或者您可以设置一些属性以在两个操作系统中使用小数分隔符(可能还有千位分隔符),正如我在回答中的最后一句话所说。
标签: c# formatting decimal