VC++ 中如何使用 CY 或 CURRENCY 联合?
How is CY or CURRENCY union used in VC++?
我必须在我正在使用的服务器中处理变体类型 VT_CY。这是link到数据类型。
虽然它描述了类型,但我找不到它的用法示例。请提供相同的示例。
正如其他评论者所指出的,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
结构(从 INT
到 DECIMAL
再到 CY
),你可以使用像 VarAdd
这样的函数来以明确定义的方式添加两个 VARIANT
结构。例如,如果您在两个 VARIANT
结构上调用该函数,每个结构都包含一个 CY
值,则结果将是一个包含新 CY
值的 VARIANT
。如果将包含 CY
的 VARIANT
添加到包含 DECIMAL
的 VARIANT
,最终会得到包含 DECIMAL
的 VARIANT
。
我必须在我正在使用的服务器中处理变体类型 VT_CY。这是link到数据类型。
虽然它描述了类型,但我找不到它的用法示例。请提供相同的示例。
正如其他评论者所指出的,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
结构(从 INT
到 DECIMAL
再到 CY
),你可以使用像 VarAdd
这样的函数来以明确定义的方式添加两个 VARIANT
结构。例如,如果您在两个 VARIANT
结构上调用该函数,每个结构都包含一个 CY
值,则结果将是一个包含新 CY
值的 VARIANT
。如果将包含 CY
的 VARIANT
添加到包含 DECIMAL
的 VARIANT
,最终会得到包含 DECIMAL
的 VARIANT
。