繁体   English   中英

将字符串转换为双“切”0

[英]Converting string to double “cuts” 0

我在将字符串转换为double时遇到问题,当我在本地计算机上运行它时它工作正常但是当我将它部署到服务器时它在前面“削减”0。 例如,我的字符串值为0,0123,当我将其转换为double时,我得到123.我使用ASP.NETC# ,我使用的方法是Convert.ToDouble() ,托管是somee.com。

现在我只是将数字除以10000得到我需要的东西,但你可以想象它不是完美的解决方案所以也许有人更好地了解如何解决它。

这是因为您的机器和服务器正在使用两种不同的文化。

有些文化使用“。” 作为小数点,而其他人使用“,”。 似乎在您的服务器文化中,“。” 是小数点 - 因此“0,0123”中的逗号被视为千位分隔符。

我将使用double.TryParseConvert.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM