gpt4 book ai didi

c# - C# 中的 0.0/0.0 不会抛出 "Attempted to divide by zero."?

转载 作者:可可西里 更新时间:2023-11-01 08:05:09 33 4
gpt4 key购买 nike

我在我 friend 的电脑上看到了这段财务计算代码:

double Total = ...
double Paid = ...
double Wating_For_Details = ...
double Decuctibles = ...
double Rejected = ...

好吧,我一看到这个,就告诉他 doublebase 2 表示,NOT 不能表示财务计算。使用 decimal 代替。

很好。

但是我把它改成double的那一刻我遇到了:

试图除以零。

嗯?

显然 - 使用 double 时,除以 0.0 它确实NOT 抛出异常:

enter image description here

但返回 NAN

虽然我的代码(使用 decimal)确实抛出异常(当 Total0 时)

所以我问:

我检查了 0.0==0,它返回 true。那么为什么我没有得到异常而是 NAN?我知道应该是这样,但是在将 double 除以零时不抛出异常的常识在哪里?

最佳答案

Unlike operations with integral types, which throw exceptions in cases of overflow or illegal operations such as division by zero, operations with floating-point values do not throw exceptions. Instead, in exceptional situations, the result of a floating-point operation is zero, positive infinity, negative infinity, or not a number (NaN):

From Double on MSDN .

关于c# - C# 中的 0.0/0.0 不会抛出 "Attempted to divide by zero."?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17473074/

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