重绘时的欧洲数字转换

时间:2013-01-18 03:13:55

标签: vb6 region msflexgrid

我有一个flexgrid单元格,不能处理我想要的欧洲数字格式。在代码中可能会抽象出一些细节。

目前,我的控制面板"当地地区"设置为目标位置(丹麦/丹麦)。

我可以成功输入十进制值,例如丹麦语格式的12,36(美国格式,当然这是12.36)。

正确处理此值,并在将其传递给SQL并使用时进行处理。

之后,我假设在下面发生了各种检查,并在此行

.Redraw = flexRDDirect

网格尝试重绘的位置, 我在这个单元格中的数字经历了一些转换。

示例

如果我键入12,36,我相信逗号会被直接转换为小数点,并且没有使用inplace函数从Danish到US(或反之亦然)的格式正确。然后在某个时刻,单元格被重新验证,并且它假定这个值12.36仍然是丹麦格式,相当于一千二百三十六(但写得很差,因为千位分隔符处于错误的位置)。 / p>

所以现在我的12,36(或美国的12.36)的价值在丹麦语中变成了12.36,当格式正确时(在正确位置有数千个分隔符),真正是1.236,00(丹麦语),现在是100X my原值12,36

那么vb6 / flexgrid中有没有明确地将这个逗号转换为小数点,然后尝试本地格式化(基本上会将我的值多出100个)?是否有.Redraw = flexRDDirect行调用的内容,我看到值会发生变化?我怀疑有一些自定义代码试图适应本地区域格式本身,而不使用提供的函数。但也许不是!

所有这些都不是我的编码专业领域。如果需要更多详细信息,请告知我们。

1 个答案:

答案 0 :(得分:0)

我发现了这个问题,就像我怀疑的那样;其他东西试图转换数值并格式化它。故障的过程是试图在数字上加0和小数点。所以当VB + region_settings处理它(正确)时,它就搞砸了。