在.net VB中有一个多语言和多货币价格列表来自两个来源。对于来自我们的SQL服务器的价格,其价格保持为Money数据类型,如果我们更改语言,一切都很好。即599.00美元的英文显示为599,00美元的意大利语。
货币和价格是单独的字段,顺便说一句。
但是,当数据来自我们的合作伙伴网络服务时,如果数据是字符串,那么599美元的英语仍然是正确的,但是当使用意大利语,西班牙语或德语时,它是599.00,00美元。我无法解决它出了什么问题。并非所有价格都是完整单位,所以我不能只解析一个整数。
任何建议都将受到赞赏。
答案 0 :(得分:1)
来自网络服务的字符串是“599.00”。如果我转换为.ToDecimal(theString),当在datagrid输出中显示时,我仍然得到599.00,00。
如果来自网络服务的字符串始终使用点作为小数点分隔符,请使用InvariantCulture进行转换,其中.
为DecimalSeparator
:< / p>
decimal amount = Convert.ToDecimal("559.00", CultureInfo.InvariantCulture);