zoukankan      html  css  js  c++  java
  • Java中的Math.abs()

    Math.abs(n):对int、long、float、double类型的数取绝对值

    其中 int 类型的数取值范围是 -2^31——2^31-1(-2147483648 ~ 2147483647)

    举例:

    1 System.out.println(Math.abs(-2147483647));
    2 //输出结果:2147483647
    3 
    4 System.out.println(Math.abs(-2147483648));
    5 //输出结果:-2147483648

    为什么会得到这样的结果呢?-2147483648没有超过 int 的取值范围,但是取绝对值后得到的还是负数?

    查看了Math.abs()的注释,看到了一段解释:

    Note that if the argument is equal to the value of Integer.MIN_VALUE, the most negative representable int value, the result is that same value, which is negative.

    (百度翻译:请注意,如果参数等于integer.min_value的值(最负的可表示int值),则结果是相同的值,这是负值。)

    原来对于这个方法,如果是-2147483648不会进行处理,得到的还是负数

  • 相关阅读:
    双端队列
    顺序循环队列
    顺序队列
    Counting Triangles(hd1396)
    蒟蒻之栈模拟递归
    链栈以及顺序栈应用—算数表达式
    栈的简单应用-进制转换
    链栈
    共享栈
    顺序栈
  • 原文地址:https://www.cnblogs.com/silence-x/p/10543388.html
Copyright © 2011-2022 走看看