我有一段代码(c ++)正在编写一些浮点值以像这样表现出色:
...
values[ position ].bstrVal = formattedValue;
values[ position ].vt = VT_BSTR;
...
如您所见,这些浮点值以字符串的形式存储,小数点以不同的方式格式化,例如:“110.000000”、“20.11”等(此示例适用于英语语言环境)
现在,当使用英语语言环境时,它可以完美运行。但是,当我在控制面板中切换到德语区域设置时,小数点更改为“,”(这很好),但是在将这些本地化字符串传递给 Excel 后,它们没有正确转换。例如,在写“110,000000”的情况下,我在 excel 中获得了 1 亿。诸如“20,11”之类的其他值保留为文本。
解决此问题的唯一方法是用“。”覆盖小数点。在我的程序中写入 Excel 之前。任何想法为什么在使用 VT_BSTR 时转换不支持区域设置?
我还应该补充一点,我尝试将程序中的语言环境从默认设置切换为德语 - 仍然没有运气。
先感谢您