Why is 0 divided by 0 throwing an overflow error in VBA?

那年仲夏 提交于 2019-11-28 12:04:42

https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/operators/floating-point-division-operator

Besides the obvious differences in implementation of languages and the way VBA handles division, MS Doc link above expands on the reasons for overflow exception , that if the operand data types are integer then it will throw Overflow exception (Last statement below)

Alternatively there is \ division operator that checks the range for you and throws Division by zero exception

Vityata

Will try to summarize the answers from the comments:

  1. In VBA 0/0 throws an Overflow exception, because 0/0 is a specific case of division by 0. Thus, it is a good idea to throw a different exception than the standard Division by zero error.

  2. In VBA Evaluate("0/0") returns a Division by zero error, because Evaluate does not raise an error, it returns a Variant value with an error flag, and there is no "overflow" flag available.

  3. In VBA integer division 0\0 returns a Division by zero error, because the result should be an integer value and #IND is a floating point value. As far as #IND cannot be returned, it gives the next best thing - Division by zero error.

More reading concerning 0/0 in other languages:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!