gpt4 book ai didi

excel - 为什么160*1440会出现溢出错误?

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

我正在处理日期,遇到了一个奇怪的问题。如果将 160 乘以 1440,即 60*24,即使使用 long,vba 也会给出溢出错误。但是,如果将160乘以86440,即60*60*24,则不会出现溢出错误。有谁知道为什么会发生这种情况?我已经找到了解决方法,但这没有任何意义。

感谢您的帮助!

Sub test()
Dim numb As Long
numb=160*1440
numb=160*86400
End Sub

如果注释掉第一行,它运行时不会出现溢出错误,但在第一行中就会出现溢出错误。

最佳答案

好吧,一开始这让我有点困惑,但现在我明白了。请注意,这将导致溢出错误:

Sub Test()
Dim numb As Long
numb = 160 * 32767
Debug.Print numb
End Sub

但这不会:

Sub Test()
Dim numb As Long
numb = 160 * 32768
Debug.Print numb
End Sub

如果您的计算结果大于32767(整数上限),并且计算中涉及的两个数字都是整数,则存在数据类型转换问题,导致溢出。因此,您必须使用 CLng() 强制转换以避免错误:

Sub Test()
Dim numb As Long
numb = 160 * CLng(32767)
Debug.Print numb
End Sub

关于excel - 为什么160*1440会出现溢出错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55764930/

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