大负数 - 积极只给予积极

时间:2011-04-15 17:29:20

标签: asp.net vb.net

我有temp2值-52340.0和hslColor.Luminosity是240.0

Dim temp1 As Double = (hslColor.Luminosity - temp2)时。它应该给出-ve数字,但我总是得到正数。

结果应该是-52100,但我得+52100。如何处理?

4 个答案:

答案 0 :(得分:5)

240 - (-52340)= 52580

你还记得你减去一个负数会发生什么吗?

答案 1 :(得分:4)

  

结果应该是-52100,但我得+52100。

这是个谎言。您应该获得52580,而不是52100

如果您将这些值替换为:

240 - -52340

你减去一个负数,所以它与添加一个正数相同:

240 + 52340

等于52580


  

如何处理?

要获得-52100的预期结果,如果temp2 始终为负,请使用此结果:

Dim temp1 As Double = (hslColor.Luminosity + temp2)

或使用此功能,如果您需要减去temp2的{​​{3}},无论它是负面还是正面:

Dim temp1 As Double = (hslColor.Luminosity - Math.Abs(temp2))

答案 2 :(得分:4)

这就是你在做的事情:

Dim temp1 as Double = (240 - -52340.0)

你正在减去一个负数。

答案 3 :(得分:0)

 Dim temp1 As Double = (240 - -52340)

答案是52580

Dim temp1 As Double = (240 - 52340)

答案是-52100