VC++ 中如何使用 CY 或 CURRENCY 联合?

How is CY or CURRENCY union used in VC++?

我必须在我正在使用的服务器中处理变体类型 VT_CY。这是link到数据类型。

CURRENCY union

虽然它描述了类型,但我找不到它的用法示例。请提供相同的示例。

正如其他评论者所指出的,CY 的结构是众所周知的,因此您可以编写自己的转换和操作程序。但是,我通常更喜欢依赖 Microsoft 为 CY 实例提供的 API。查看以下链接。

您应该尽量限制转换。如果您有两个 CY 结构,请使用 VarCyAdd instead of converting the CY structs to floating-point types. This will reduce floating point errors. When you have manipulated the CY structs as appropriate, you can use VarBstrFromCy 等算术函数来生成该值的字符串表示形式。同样,这比在将浮点值格式化为字符串之前将最终结果转换为浮点值要好。

前面的所有内容也适用于 DECIMAL 类型。

VARIANT 结构也有类似的功能。如果你有两个包含数值的 VARIANT 结构(从 INTDECIMAL 再到 CY),你可以使用像 VarAdd 这样的函数来以明确定义的方式添加两个 VARIANT 结构。例如,如果您在两个 VARIANT 结构上调用该函数,每个结构都包含一个 CY 值,则结果将是一个包含新 CY 值的 VARIANT。如果将包含 CYVARIANT 添加到包含 DECIMALVARIANT,最终会得到包含 DECIMALVARIANT