我有一个柔性网格单元格,它不处理我想要的欧洲数字格式。在代码中,有些细节可能会从我这里抽象出来。
目前,我的控制面板“本地区域”被设置为目标位置(丹麦/丹麦)。
我可以成功地输入一个十进制值,例如以丹麦格式输入的12,36 (当然是美国格式,这是12.36)。
此值被正确地处理,并在传递到SQL并使用时处理。
之后,我假设下面会发生各种检查,而在这一行上
.Redraw = flexRDDirect
在网格试图重新绘制的地方,我在这个单元格中的数字进行了一些转换。
示例
如果我输入12,36,我相信逗号正被直接转换成小数点,并且没有正确地格式化从丹麦语到US (反之亦然),首先使用内置函数。然后,在某个时候,单元格被重新验证,它假设这个值12.36仍然是丹麦格式,相当于1,236(但是写得很差,因为数千个分隔符在错误的位置)。
所以现在我的值12,36 (在美国是12.36 ),在丹麦语中变成了12.36,如果格式正确的话,实际上是1.236,00(丹麦语),现在是我原来的12,36的100倍。
那么,vb6/flexgrid中是否有什么东西可以显式地将这个逗号转换为小数点,然后尝试本地格式(这实际上会使我的值乘以100)?在我看到值发生变化的.Redraw = flexRDDirect
行中是否调用了什么东西?我怀疑有一些自定义代码试图在不使用所提供的函数的情况下适应本地区域的格式设置。但也许不是!
所有这些都不是我的编码专业领域。如果需要更多细节请告诉我。
发布于 2013-01-21 16:13:57
我发现了这个问题,正如我所怀疑的那样;还有一些东西试图转换数字值并对其进行格式化。错误的过程是试图将0和小数点加到数字中。因此,当VB+region_settings正确地处理它时,它就被搞砸了。
https://stackoverflow.com/questions/14391863
复制相似问题