读书人

Sgn(三 gt; 2)为何返回值为 -1

发布时间: 2013-04-09 16:45:09 作者: rapoo

Sgn(3 > 2)为何返回值为 -1?
看说明 Sgn(number)

number > 0 返回1
number = 0 返回0
number < 0 返回-1

为何Sgn(3 > 2)返回-1 ?
[解决办法]
vb中以-1表示真。
[解决办法]
唉,这些常数值的管理混乱是令人头痛的事。
不过我刚才在vb.net里测试了下,并非如4楼说的那样:

Me.Text = CLng(True).ToString()
Me.Text += CLng(3>2).ToString()'-1-1

[解决办法]
看来教材误导大家。VB.net早期的教材确实说过True的底层值为1。也许微软是为了保持兼容性,在后来的高版本中又改回来了(猜测而已)。
另外,在用Cbool转换过程中,凡是非0都转换成了TRUE,0转换成FALSE。
看看这个就明白了:http://zhidao.baidu.com/question/85497221.html

读书人网 >VB

热点推荐