Print Sgn(-5.1 ^ 2) + Abs(Int(-5.1 ^ 2))为什么是26不是25?

2025-03-31 22:45:04
推荐回答(4个)
回答1:

看MSDN就会知道
int取整是生成一个不大于原数的整数!!

-5.1 ^ 2的结果是-26.01, 使用int的结果,就是返回-27,因为只有-27才会小于-26.01的..

剩下的就不说了吧.Sgn(-5.1 ^ 2) , 其中的sgn函数是取正负号,因为结果是负数,所以返回-1

-27的绝对值是27, 27加上-1,结果当然是26

如果你想结果为25的话,可以修改代码为:
Print Sgn(-5.1 ^ 2) + Abs(Fix(-5.1 ^ 2))
(Fix就是直接取去小数部分的函数)

回答2:

-5.1 ^ 2的值是-26.01
Sgn(-5.1 ^ 2) = -1
Int(-5.1 ^ 2) = -27 'Int在小于0后取整是小于原值的,-26.01取整后是-27
Abs(Int(-5.1 ^ 2)) = 27
Sgn(-5.1 ^ 2) + Abs(Int(-5.1 ^ 2)) = 26
注意:-5.1 ^ 2和(-5.1) ^ 2的区别

回答3:

-5.1^2=-26.01 '运算符的优先级
Sgn(-5.1 ^ 2) =-1 'Sgn(n) n<0 返回-1
Int(-5.1 ^ 2)=-27 'Int(n) 取小于等于n的最大整数
Abs(Int(-5.1 ^ 2))=27 'Abs(n) 取绝对值

Sgn(-5.1 ^ 2) + Abs(Int(-5.1 ^ 2))=26

回答4:

好像有问题.