BigInteger和BigDecimal

mac2025-10-29  17

BigInteger和BigDecimal

import java.math.BigDecimal; /* * BigInteger和BigDecimal常用来做精度运算 * BigInteger: * 可以让超过Integer范围的数据进行运算 * 构造方法: * public BigInteger(String val) * * BigDecimal * 由于运算的时候,float和double很容易丢失精度,为了精确的表示、计算浮点数,java提供了BigDecimal * 构造函数 * public BigDecimal(String val) */ import java.math.BigInteger; public class BigIntegers { public static void main(String[] args) { // demo1(); System.out.println(2.0-1.1); //精度缺失 0.8999999999999999 BigDecimal b = new BigDecimal(2.0); BigDecimal b2 = new BigDecimal(1.1); System.out.println(b.subtract(b2)); //不推荐使用,精度不够 0.899999999999999911182158029987476766109466552734375 BigDecimal b3 = new BigDecimal("2.0"); BigDecimal b4 = new BigDecimal("1.1"); System.out.println(b3.subtract(b4)); //推荐使用,构造方法中传入字符串 0.9 BigDecimal b5 = BigDecimal.valueOf(2.0); BigDecimal b6 = BigDecimal.valueOf(1.1); System.out.println(b5.subtract(b6)); //推荐使用, 0.9 } private static void demo1() { /* * BigInteger的作用与方法 */ BigInteger bi1 = new BigInteger("100"); BigInteger bi2 = new BigInteger("50"); System.out.println(bi1.add(bi2)); //+ System.out.println(bi1.subtract(bi2)); //- System.out.println(bi1.multiply(bi2)); //* System.out.println(bi1.divide(bi2)); // / System.out.println("-------------------"); BigInteger[] array = bi1.divideAndRemainder(bi2); //求除数和余数,返回一个数组 for(int i = 0; i < array.length; i++) { System.out.println(array[i]); } System.out.println(Arrays.toString(array)); //[2, 0] } }
最新回复(0)