让我们说我想计算百分比并做:
double n = ...;
double total = ...;
double percents = (total == 0) ? 0 : (n/ total) * 100;
R#警告我“修复浮动数字比较”。以及使用EPSILON的提示。我清楚地理解为什么这个警告一般都会显示出来。但在这种情况下,我唯一想要的是避免抛出异常。所以我在固定的0上“陈述”。
这是正确的假设还是存在一些隐藏的缺陷,我还是应该使用一些epsilon?
答案 0 :(得分:2)
浮点除以0.0没有错。
您只能获得DivideByZeroExceptions进行整数除法。
你遇到的问题是1.0 / 0.0导致无穷大。
如果要显示,只需使用string.Format
。
答案 1 :(得分:1)
这里不需要使用Epsilon。您检查总计等于0仅用于防止DivideByZeroExceptions。当然还有四舍五入的问题,但那些与警告无关,只适用于n / total表达式