VB6到C的货币数据类型++; < >我从VB6调用C++函数。 其中我需要传递货币数据类型的变量。 但是在C++中,我们没有这样的数据类型。 在C++函数中,我应该如何使用与货币数据类型的兼容性?< /p> < p>我猜最好的办法是将它作为一个手动操作来处理C++代码中的变体。< /p> < p>我猜最好的办法是把它作为一个手动的方式处理C++代码中的变体。< /p> < p>只需使用货币< /代码>类型并乘以100,然后将其传递给C++作为长< /COD>整数。当您需要返回结果时,请执行相反的操作 不会有精度损失,代码非常简单。< P>只需使用货币< /代码>类型并将其乘以100,然后将其传递给C++作为长< /COD>整数。当您需要返回结果时,请执行相反的操作 精度不会损失,代码非常简单。 < p>强>货币类型与C++中的 >代码>代码>代码> 类型大致相同(假设微软编译器)

VB6到C的货币数据类型++; < >我从VB6调用C++函数。 其中我需要传递货币数据类型的变量。 但是在C++中,我们没有这样的数据类型。 在C++函数中,我应该如何使用与货币数据类型的兼容性?< /p> < p>我猜最好的办法是将它作为一个手动操作来处理C++代码中的变体。< /p> < p>我猜最好的办法是把它作为一个手动的方式处理C++代码中的变体。< /p> < p>只需使用货币< /代码>类型并乘以100,然后将其传递给C++作为长< /COD>整数。当您需要返回结果时,请执行相反的操作 不会有精度损失,代码非常简单。< P>只需使用货币< /代码>类型并将其乘以100,然后将其传递给C++作为长< /COD>整数。当您需要返回结果时,请执行相反的操作 精度不会损失,代码非常简单。 < p>强>货币类型与C++中的 >代码>代码>代码> 类型大致相同(假设微软编译器),vb6,Vb6,在内部,它是一个8字节整数,按10000的因子进行缩放,在小数点分隔符后提供4位数字 根据编译器的不同,您可以直接使用CY类型或传递变量并使用myVariant.cyVal(属于CY类型) 如果你没有“变体< /COD>和Cy”类型(它们不是C++标准的一部分),你的C++函数必须接受64位整数,你必须把值除以10000才能得到正确的值。(使用代码< >代码> >代码> >或代码>长长,再次取决于编译器)< P> VB6S< Sturial>货币< /St>类型与C++的“强> >代码>代码/代

在内部,它是一个8字节整数,按10000的因子进行缩放,在小数点分隔符后提供4位数字

根据编译器的不同,您可以直接使用
CY
类型或传递
变量
并使用
myVariant.cyVal
(属于
CY
类型)


如果你没有“<代码>变体< /COD>和Cy”类型(它们不是C++标准的一部分),你的C++函数必须接受64位整数,你必须把值除以10000才能得到正确的值。(使用代码< >代码> >代码> >或代码>长长,再次取决于编译器)

< P> VB6S< Sturial>货币< /St>类型与C++的“强> >代码>代码/代码> <强>类型大致相同(假设微软编译器)

在内部,它是一个8字节整数,按10000的因子进行缩放,在小数点分隔符后提供4位数字

根据编译器的不同,您可以直接使用
CY
类型或传递
变量
并使用
myVariant.cyVal
(属于
CY
类型)


如果你没有“<代码>变体< /COD>和Cy”类型(它们不是C++标准的一部分),你的C++函数必须接受64位整数,你必须把值除以10000才能得到正确的值。(使用代码< >代码> < 64代码>或>代码>长长< /C> >,再次根据编译器)< /P> < P>我相信VisualC++有一个原生的64位整数类型(也称为),它大致相当于VB6货币。虽然在C++代码中,你会看到VB6中的值比你看到的值大10000倍。或者在C++中除以10000以获得正确的值,或者使用缩放值来保持精度。 对于其他C++编译器Bruce McKinney的圣经硬核VisualBasic,类似于此,所以:


<>请参阅更多细节。

< P>我相信VisualC++有一个原生的64位整数类型(也称为),它大致相当于VB6货币。虽然在C++代码中,你会看到VB6中的值比你看到的值大10000倍。或者在C++中除以10000以获得正确的值,或者使用缩放值来保持精度。 对于其他C++编译器Bruce McKinney的圣经硬核VisualBasic,类似于此,所以:


有关更多详细信息,请参阅。

尽管如果答案超出了long.True的可能范围,您将获得溢出。如果金额超过20000美元:)如果金额较大,则
\u int64
将更合适。尽管如果答案超出long.True的可能范围,您将获得溢出,如果金额超过20000美元:)如果金额较大,则使用
\uu int64
更合适。
typedef union _LARGE_INTEGER {
    struct {
        DWORD LowPart;
        LONG  HighPart;
    };
    LONGLONG QuadPart;    // In Visual C++, a typedef to __int64
} LARGE_INTEGER;