检查分母
本文关键字:检查 | 更新日期: 2023-09-27 18:29:43
假设我想计算百分比并执行:
double n = ...;
double total = ...;
double percents = (total == 0) ? 0 : (n/ total) * 100;
R#警告我"修复浮点数比较"。以及使用EPSILON的提示。我清楚地理解为什么会出现这种警告。但在这种情况下,我唯一想要的就是避免抛出异常。所以我"状态"为固定的0。
这是正确的假设还是有一些隐藏的缺陷,我无论如何都应该使用一些ε?
浮点除以0.0没有错。
整数除法只能得到DivideByZeroExceptions。
但问题是1.0/0.0会导致无穷大。
如果这是为了显示,只需使用string.Format
。
这里不需要使用Epsilon。您检查的总数是否等于0只是为了防止DivideByZeroExceptions。当然,也有取整的问题,但这些问题与警告无关,仅适用于n/total表达式