较大的负数-仅正定地给出正定值

问题描述

| 我有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