java函数中math.abs(x)是什么意思
该⽅法返回x的绝对值,x的取值可以是各种类型参数。
Math.abs(x)=|x|;如果参数是⾮负数,则返回该参数。如果参数是负数,则返回该参数的相反数。
特殊情况是:
如果参数是正零或负零,那么结果是正零。
如果参数是⽆穷⼤,那么结果是正⽆穷⼤。
如果参数是 NaN,那么结果就是 NaN。
Math.abs('-1');    // 1
Math.abs(-2);      // 2
Math.abs(null);    // 0
Math.abs('');      // 0
Math.abs([]);      // 0
Math.abs([2]);      // 2
Math.abs([1,2]);    // NaN
Math.abs({});      // NaN
Math.abs('string'); // NaN
Math.abs();        // NaN
重点注意的是:
Math.abs(Integer.MIN_VALUE);  //-2147483648
Math.abs(Long.MIN_VALUE);  //-9223372036854775808
Why
不是说“如果参数是负数,则返回该参数的相反数”吗?看到这⾥可能有的急性⼦会说楼主你根本不是⽼司机,⾃打脸……
真实情况是Math.abs(int)返回的是⼀个int值。
java中index是什么意思
但是2147483648已经不是Integer的范围所能表⽰的了。硬⽤int来表⽰,就变成负数了。
可以这样——
Math.abs((long)Integer.MIN_VALUE);  //2147483648
Math.abs((double)Long.MIN_VALUE);  //9223372036854775808
最后科普下该篇⽂章中的两个专业术语:NAN、绝对值
NAN:(摘⾃百度)
计算机⽤语
NaN,是Not a Number的缩写。
NaN ⽤于处理计算中出现的错误情况,⽐如 0.0 除以 0.0 或者求负数的平⽅根。由上⾯的表中可以看出,对于单精度浮点数,NaN 表⽰为指数为 emax + 1 = 128(指数域全为 1),且尾数域不等于零的浮点数。IEEE 标准没有要求具体的尾数域,所以 NaN 实际上不是⼀个,⽽是⼀族。不同的实现可以
⾃由选择尾数域的值来表达 NaN,⽐如 Java 中的常量 Float.NaN 的浮点数可能表达为01111111110000000000000000000000,其中尾数域的第⼀位为 1,其余均为 0(不计隐藏的⼀位),但这取决系统的硬件架构。Java 中甚⾄允许程序员⾃⼰构造具有特定位模式的 NaN 值(通过 Float.intBitsToFloat() ⽅法)。⽐如,程序员可以利⽤这种定制的NaN 值中的特定位模式来表达某些诊断信息。
绝对值:(摘⾃百度)
绝对值是指⼀个数在数轴上所对应点到原点的距离叫做这个数的绝对值,绝对值⽤“ | |”来表⽰。|b-a|或|a-b|表⽰数轴上表⽰a的点和表⽰b的点的距离。(零绝对值0)
⼏何意义
在数轴上,⼀个数到原点的距离叫做该数的绝对值。|a-b|表⽰数轴上表⽰a的点的距离。
⼏何的意义的应⽤:
例如:|5|指在数轴上表⽰数5的点与原点的距离,这个距离是5,所以5的绝对值是5。同样,|-5|指在数轴上表⽰数-5的点与原点的距离,这个距离是5,所以-5的绝对值也是5。|-3+2|指数轴上表⽰-3的点和表⽰-2的点的距离,这个式⼦值是1,所以数轴上表⽰-3的点和表⽰-2的点的距离是1。同样|3-2|也
表⽰数轴上3的点和表⽰2的点的距离。
绝对值是指⼀个数在数轴上所对应点到原点的距离:这句百度解释重点在“距离”⼆字,⽣活中距离的取值范围是≥0的,当然不排除有些屌丝喜欢意淫“我和某某(这个某某可男可⼥)距离是负数”,这种说法让⼈很困惑,但⽼司机都是秒懂的,今天你懂了吗?