【发布时间】:2012-07-13 13:04:49
【问题描述】:
我们有区域相关的网络客户端,其中货币设置为区域格式,我们解析如下:
bool result = decimal.TryParse(currencyValue, NumberStyles.Currency, myCulture, out value);
当我们将此十进制序列化为 xml 并且之前在 myCulture=en-US 中解析了十进制时,xmlserializer 返回 <Curr id="2" amnt="100000000.00"/> 并将其反序列化回相同的数字...但是当我们在 sk-SK 或 cs-CZ 中执行此操作时它返回 <Curr id="2" amnt="100000000,00"/> 在反序列化时返回 *100(忽略逗号)...
是否有可能从十进制中删除该区域,或使其保持不变? (如果我不想将其转换为字符串并再次解析以处理区域)
【问题讨论】:
-
在各处使用相同的文化进行序列化(
InvariantCulture看起来很合适)。 -
如果我理解正确 - 我很难相信。您确定您没有使用 XmlSerializer 来序列化字符串而不是小数吗?还是您使用自定义序列化?发布说明正在发生的事情的代码。
-
是的,我确定它是一个小数,是的,这对我来说也是难以置信的......有一个小数吗?对象,在调试时显示值 100,但如果使用 en-EN 语言环境解析,则在 xml 中写入 100.00,如果是 cs-CZ,则写入 100,00 ...现在我无法从家里显示更多代码无权访问 tfs。
标签: c# asp.net type-conversion