Visual c++ 在VC+中如何使用CY或货币联盟+;?

Visual c++ 在VC+中如何使用CY或货币联盟+;?,visual-c++,mfc,com,variant,Visual C++,Mfc,Com,Variant,我必须在正在使用的服务器中处理变体类型VT_CY。这是指向数据类型的链接 虽然它描述了该类型,但我找不到任何使用该类型的示例。请提供相同的示例。正如其他评论者所指出的那样,CY的结构是众所周知的,因此您可以编程自己的转换和操作。但是,我通常更喜欢依赖Microsoft为CY实例提供的API。看看下面的链接 您应该尽量限制转换。如果有两个CY结构,请使用类似的算术函数,而不是将CY结构转换为浮点类型。这将减少浮点错误。在适当地操作了CY结构后,可以使用生成值的字符串表示形式。同样,这比在

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


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

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

您应该尽量限制转换。如果有两个
CY
结构,请使用类似的算术函数,而不是将
CY
结构转换为浮点类型。这将减少浮点错误。在适当地操作了
CY
结构后,可以使用生成值的字符串表示形式。同样,这比在将浮点值格式化为字符串之前将最终结果转换为浮点值要好

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

VARIANT
structs也有类似的函数。如果您有两个包含数值的
VARIANT
结构(从
INT
DECIMAL
CY
),您可以使用类似这样的函数,以明确定义的方式添加这两个
VARIANT
结构。例如,如果在两个
VARIANT
结构上调用该函数,每个结构都包含一个
CY
值,则结果将是一个
VARIANT
包含一个新的
CY
值。如果将包含
CY
变量添加到包含
小数的
变量
,则会得到包含
小数的
变量


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

您应该尽量限制转换。如果有两个
CY
结构,请使用类似的算术函数,而不是将
CY
结构转换为浮点类型。这将减少浮点错误。在适当地操作了
CY
结构后,可以使用生成值的字符串表示形式。同样,这比在将浮点值格式化为字符串之前将最终结果转换为浮点值要好

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

VARIANT
structs也有类似的函数。如果您有两个包含数值的
VARIANT
结构(从
INT
DECIMAL
CY
),您可以使用类似这样的函数,以明确定义的方式添加这两个
VARIANT
结构。例如,如果在两个
VARIANT
结构上调用该函数,每个结构都包含一个
CY
值,则结果将是一个
VARIANT
包含一个新的
CY
值。如果将包含
CY
变量添加到包含
小数的
变量
,则会得到包含
小数的
变量


int64
成员除以
10000.0
得到一个浮点值。@Someprogrammerdude高和低呢?如果我想转换一个双精度值,比如4655757.1234,它将如何转换为CY?如果可以使用本机64位数学,那么为什么还要麻烦这些成员呢?要转换成相反的方式,想想除法的对立面是什么。@Someprogrammerdude哦,我以为所有字段都是必需的。你的意思是说int64保存整个值?4655757.1234应作为46557571234存储在int64中?我没有注意到它是一个并集。顺便说一句,值
4655757.1234
不能准确地表示为有限双精度浮点值。这对您的应用程序可能很重要,也可能不重要。将
int64
成员除以
10000.0
,您将得到一个浮点值。@Someprogrammerdude如何处理Hi和Lo?如果我想转换一个双精度值,比如4655757.1234,它将如何转换为CY?如果可以使用本机64位数学,那么为什么还要麻烦这些成员呢?要转换成相反的方式,想想除法的对立面是什么。@Someprogrammerdude哦,我以为所有字段都是必需的。你的意思是说int64保存整个值?4655757.1234应作为46557571234存储在int64中?我没有注意到它是一个并集。顺便说一句,值
4655757.1234
不能准确地表示为有限双精度浮点值。这可能对您的应用程序很重要,也可能不重要。