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