我从 Oracle 数据库接收到以下值(作为 varchar):7876,72
在 Visual Studio 中,它被读取为String
案例1(预期案例):
当我调试时,我看到:7876.72
当我尝试时,Convert.ToDecimal("7876.72")
我得到了7876.72D
案例2(错误案例):
当我调试时,我看到:7876,72
当我尝试时,Convert.ToDecimal("7876,72")
我得到了787672D
我正在检查CultureInfo.CurrentCulture
andRegionInfo.CurrentRegion
它在两台机器上都是一样的......
造成这种情况的主要原因是:
Convert.ToDecimal("7876,72").ToString("0,0.00", CultureInfo.InvariantCulture)
给我:787,672.00
它应该是7,876.72
。
Global.asax - Application_Start
Dim newCulture As CultureInfo = DirectCast(System.Threading.Thread.CurrentThread.CurrentCulture.Clone(), CultureInfo)
newCulture.DateTimeFormat.ShortDatePattern = "yyyy/MM/dd"
newCulture.DateTimeFormat.DateSeparator = "/"
newCulture.NumberFormat.CurrencyDecimalSeparator = "."
newCulture.NumberFormat.NumberDecimalSeparator = "."
Thread.CurrentThread.CurrentCulture = newCulture
关于如何在两台机器上保持相同值的任何想法?
提前致谢!