【发布时间】:2017-07-03 06:29:40
【问题描述】:
如何强制 c# 应用程序使用 .用于小数分隔符并忽略服务器中的文化设置。我对 double.ToString 和 double.parse 有这个问题 由于应用规模大,我应该更改应用级别的设置。
在 double.parse("1/25") 和 1.25 ToString 等情况下会发生异常
我有试试这个代码
string CultureName = Thread.CurrentThread.CurrentCulture.Name;
CultureInfo ci = new CultureInfo(CultureName);
if (ci.NumberFormat.NumberDecimalSeparator != ".")
{
// Forcing use of decimal separator for numerical values
ci.NumberFormat.NumberDecimalSeparator = ".";
Thread.CurrentThread.CurrentCulture = ci;
}
在 app_start 开始请求和改变文化但无法解决问题的方法
应用程序在 .net 3.5 中正常运行,但升级到 .net 4.6.2 后,此问题发生在 server 2012 和 windows 10 上。
【问题讨论】:
-
double result = double.Parse("1.234", CultureInfo.InvariantCulture); -
感谢@Dmitry Bychenko 但是我不能更改每个 double.parse 因为它已经使用了 7000 次,而且 double.ToString 在我们的应用程序中引发了不匹配数据异常。我应该在应用程序级别修复
标签: c# .net double cultureinfo .net-4.6.2