hue = (int)Math.Round(60 * ((double)(r - g) / sat + 4));
这是将色调设置为-2147483288,此时r,g和sat的值均为零。任何帮助赞赏!编辑:这是C#
答案 0 :(得分:4)
你除以0.即sat为0.绝对不推荐任何编程语言。当sat = 0时,你会想要一个特例:
if(sat==0)
hue = 0;
else
hue = (int)Math.Round(60 * ((double)(r - g) / sat + 4));
答案 1 :(得分:2)
在右侧发生的是你正在执行零除以。这不会被报告为例外,因为您正在使用双打,并且允许这些零分割,但不会产生“好”和“有意义”的结果。特别是如果您进一步执行计算并将结果转换为int。
这对双打示例有何用处:
这是IEEE-754中定义的标准行为,大多数编程语言应该采用这种方式。