大数值和数组

    xiaoxiao2021-03-25  75

    大数值

             考虑下面代码的输出结果: public static void main(String[] args){ System.out.println(1.0-0.42); System.out.println(4.015*100); System.out.println(303.1/1000); }        上述代码的输出结果为:          0.5800000000000001 401.49999999999994 0.30310000000000004        计算机是二进制的,浮点数没有办法使用二进制进行精确的计算,我们的CPU是由两部分组成:指数和尾数,这样的表示方法一般都会失去一定的精度,也会产生一定的误差。         如果基本的整数和浮点数精度不能够满足需求,那么可以使用两个很有用的类:BigInteger和BigDecimal。这两个类可以处理任意长度数字序列的数值。BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。使用静态的valueOf方法可以将普通的数值转换为大数值:BigInteger int = BigInteger.valueOf(100)。大数值类型的基本方法:          add:加 subtract:减 multiply:乘 divide:除 mod:求余数 compareTo(other):如果这个大整数与另外一个大整数other相等,返回0;如果这个大整数小于另一个大整数other,返回负数;否则返回正数。使用BigDecimal进行精确计算: BigDecimal a = new BigDecimal("1.0"); BigDecimal b = new BigDecimal("0.42"); BigDecimal result = a.subtract(b); System.out.println(result); 输出结果为:0.48

    数组

    数组常见的方法:         Arrays.toString(T[] a):直接输出数组的元素。 static T copyOf(T[] a,int length) static T copyOf(T[] a,int start, int end):返回与a类型相同的一个数组,其长度为length获得end - start。 static void sort(type[] a):采用优化的快速排序算法对数组进行排序。static int binarySearch(T[] a,T v) static int binarySearch(T[] a,int start,int end,type v):采用二分搜索算法查找v。如果查找成功,则返回响应的下标值,否则返回一个负数值r。-r -1 是为保持数组a有序v应该插入的位置。
    转载请注明原文地址: https://ju.6miu.com/read-37828.html

    最新回复(0)