问题描述
|
我有temp2值-52340.0和hslColor.Luminosity是240.0
当
Dim temp1 As Double = (hslColor.Luminosity - temp2)
时。它应该给-ve数字,但我总是得到正数。
结果应该是-52100,但我得到+52100。如何处理呢?
解决方法
这是您在做什么:
Dim temp1 as Double = (240 - -52340.0)
您要减去负数。
,240-(-52340)= 52580
您还记得如果减去负数会发生什么情况?
, 结果应该是-52100,但我得到+52100。
这是一个谎言。您应该得到52580
,而不是52100
。
如果您将值替换为:
240 - -52340
您要减去负数,因此与添加正数相同:
240 + 52340
等于52580
。
如何处理呢?
要获得-52100
的预期结果,如果temp2
始终为负,请使用以下结果:
Dim temp1 As Double = (hslColor.Luminosity + temp2)
或使用它,如果您需要减去temp2
的绝对值,则可以为负也可以为正:
Dim temp1 As Double = (hslColor.Luminosity - Math.Abs(temp2))
, Dim temp1 As Double = (240 - -52340)
答案将是52580
Dim temp1 As Double = (240 - 52340)
答案将是-52100