gpt4 book ai didi

vba - VBA/VB6 中的 NaN 测试

转载 作者:行者123 更新时间:2023-12-03 04:57:38 24 4
gpt4 key购买 nike

使用 VBA,我将字节数组中的 8 字节 float 加载到 Double 中。有些数字将为 IEEE 754 NaN(即,如果您尝试使用 Debug.Print 打印它,您将看到 1.#QNAN)。我的问题是,如何测试 Double 中包含的数据是否是 NaN 而不是常规数字?

谢谢。

最佳答案

NaN 在指数中具有一种模式,您可以在它们仍在字节数组中时识别它们。具体来说,任何 NaN 都将具有全 1 的指数,任何 Infinity 也是如此,您可能也应该捕获它。

在 double 中,指数位于最高位两个字节中:

 SEEEEEEE EEEEMMMM MMM....

假设它们是 b(0) 和 b(1):

  Is_A_Nan = ((b(0) And &H7F) = &H7F) And ((b(1) And &HF0) = &HF0)

这是空中代码,但你明白了。

如果您需要区分 SNaN、QNaN 和 Infinity,您需要更深入地研究,但这听起来对您来说不是问题。

关于vba - VBA/VB6 中的 NaN 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2731445/

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