[英]Converting string to double “cuts” 0
这是因为您的机器和服务器正在使用两种不同的文化。
有些文化使用“。” 作为小数点,而其他人使用“,”。 似乎在您的服务器文化中,“。” 是小数点 - 因此“0,0123”中的逗号被视为千位分隔符。
我将使用double.TryParse
或Convert.ToDouble
的重载,它接受IFormatProvider
并传入正确的CultureInfo
。
将来,请尝试使用CultureInfo.InvariantCulture
格式化所有内部数据(即数据持久性或系统中的数据流),并使用正确的CultureInfo
向用户显示数据。
小数点在不同文化之间是不一样的,因此,具有不同文化背景的计算机。
尝试使用double.Parse(string, CultureInfo)
和一个适用于您的格式的显式CultureInfo
。
根据您将值表示为0,0123而不是0.0123的事实,我猜测服务器上的语言/文化设置与您自己的计算机上的语言/文化设置不同。
尝试从服务器上的某个位置打印出System.Globalization.CultureInfo.CurrentCulture.Name
的结果,并将其与本地计算机生成的结果进行比较。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.