hue = (int)Math.Round(60 * ((double)(r - g) / sat + 4));
这将色调设置为 -2147483288,此时 r、g 和 sat 的值都为零。任何帮助表示赞赏!编辑:这是 C#
您除以 0。即 sat 为 0。绝对不建议在任何编程语言中使用。当 sat = 0 时,你会想要一个特殊情况:
if(sat==0)
hue = 0;
else
hue = (int)Math.Round(60 * ((double)(r - g) / sat + 4));
右侧发生的情况是您正在执行除以零。这不会被报告为异常,因为您使用的是双打,并且对于这些零除法是允许的,但不会产生“好的”和“有意义的”结果。特别是如果您要进一步执行计算并将结果转换为 int。
这如何适用于双打示例:
这是 IEEE-754 中定义的标准行为,大多数编程语言都应该这样做。