我有两个控制台应用程序(msvc 2008)。当它们被零除时, 它们的行为不同。我的问题如下。msvc除以零
a)在一个应用中,除零的结果显示为1.#INF000000000000作为调试器。
Printf“%4.1f”将其打印为“1. $”。
b)在另一个应用程序中,在调试器中除以零9.2559631349317831e + 061的结果。
Printf“%4.1f”将其打印为“-1。$”。
Why
既不应用具有零对DIV异常或信号?
是不是例外/信号默认dehavour?什么是
define
以上两个常量的名字?一般情况下,如果我在div之前检查分母== 0,那么我应该使用哪个
define
值作为虚拟结果? DBL_MIN好吗?我发现NaN值不是。我可以告诉stdio如何将一个特定的double值格式化为char字符串我告诉它吗?我意识到这是太多要问。但是,以我的应用程序中的viro DBL_MIN为例,说告诉stdio打印,比如“n/a”会很好。
我应该如何处理,以实现最佳的可移植性,零除以及打印结果?通过打印,我的意思是“打印数字为'不适用',如果它是由零除的结果”。
在这里我不清楚,我怎样才能以便携的方式在一个双倍的情况下代表零的结果。为什么两个不同的结果?它是编译器选项?
编译器是C++,但使用非常像C.感谢。
因为除零不是一个指定的标准异常。看到这篇文章http://stackoverflow.com/questions/4747934/c-catch-a-divide-by-zero-error获取更多信息。 – Mahesh 2011-03-22 23:01:22
@Mahesh:这个问题处理*整数*除零。这个问题是关于浮点运算,它们的处理方式大不相同。 – Lindydancer 2011-04-09 10:35:19