Print Sgn(-5.1 ^ 2) + Abs(Int(-5.1 ^ 2))为什么是26不是25?_百度知...

发布网友

我来回答

4个回答

热心网友

看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就是直接取去小数部分的函数)

热心网友

好像有问题.

热心网友

-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

热心网友

-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的区别

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com