gpt4 book ai didi

c++ - 使用 VariantCopyInd 的精度

转载 作者:太空宇宙 更新时间:2023-11-04 14:32:52 25 4
gpt4 key购买 nike

我正在使用 VariantCopyInd 。源包含 1111.199999999。但是,在 VariantCopyInd 之后,该值在目标中四舍五入为 1111.200000。我想保留原来的值(value)。如何实现?

最佳答案

这与 VariantCopyInd 无关,而仅仅是因为它存在于代码中的文字在 COM 变体内部使用的浮点格式中没有精确的表示

因此,除了使用 CURRENCY 类型的变体之外,没有办法实现您想要的。它的精度有限,请参阅 MSDN:

CURRENCY 类型在内部使用十进制表示,就像代码文字一样。 您仍然需要在代码中提供间接初始化(来自 string,而不是 float/double 文字),以防止任何不需要的表示效果。

A currency number stored as an 8-byte, two's complement integer, scaled by 10,000 to give a fixed-point number with 15 digits to the left of the decimal point and 4 digits to the right. This IDispatch::GetTypeInforesentation provides a range of 922337203685477.5807 to -922337203685477.5808.

The CURRENCY data type is useful for calculations involving money, or for any fixed-point calculation where accuracy is particularly important.

关于c++ - 使用 VariantCopyInd 的精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8324717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com