BigInteger(String val)
BigInteger bi = new BigInteger("5")
方法名称 | 说明 |
---|---|
add(BigInteger val) | 做加法运算 |
subtract(BigInteger val) | 做减法运算 |
multiply(BigInteger val) | 做乘法运算 |
divide(BigInteger val) | 做除法运算 |
remainder(BigInteger val) | 做取余数运算 |
divideAndRemainder(BigInteger val) | 做除法运算,返回数组的第一个值为商,第二个值为余数 |
pow(int exponent) | 做参数的 exponent 次方运算 |
negate() | 取相反数 |
shiftLeft(int n) | 将数字左移 n 位,如果 n 为负数,则做右移操作 |
shiftRight(int n) | 将数字右移 n 位,如果 n 为负数,则做左移操作 |
and(BigInteger val) | 做与运算 |
or(BigInteger val) | 做或运算 |
compareTo(BigInteger val) | 做数字的比较运算 |
equals(Object obj) | 当参数 obj 是 Biglnteger 类型的数字并且数值相等时返回 true, 其他返回 false |
min(BigInteger val) | 返回较小的数值 |
max(BigInteger val) | 返回较大的数值 |
import java.math.BigInteger; import java.util.Scanner; public class Test09 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入一个整型数字:"); // 保存用户输入的数字 int num = input.nextInt(); // 使用输入的数字创建BigInteger对象 BigInteger bi = new BigInteger(num + ""); // 计算大数字加上99的结果 System.out.println("加法操作结果:" + bi.add(new BigInteger("99"))); // 计算大数字减去25的结果 System.out.println("减法操作结果:" + bi.subtract(new BigInteger("25"))); // 计算大数字乘以3的结果 System.out.println("乘法橾作结果:" + bi.multiply(new BigInteger("3"))); // 计算大数字除以2的结果 System.out.println("除法操作结果:" + bi.divide(new BigInteger("2"))); // 计算大数字除以3的商 System.out.println("取商操作结果:" + bi.divideAndRemainder(new BigInteger("3"))[0]); // 计算大数字除以3的余数 System.out.println("取余操作结果:" + bi.divideAndRemainder(new BigInteger("3"))[1]); // 计算大数字的2次方 System.out.println("取 2 次方操作结果:" + bi.pow(2)); // 计算大数字的相反数 System.out.println("取相反数操作结果:" + bi.negate()); } }上述代码将用户输入的整型数字保存到 num 变量中,由于 BigInteger 类的构造方法只接收字符串类型的参数,所以使用“new BigInteger(num+"")”代码来创建 BigInteger 对象。接下来的代码演示了如何调用 BigInteger 类提供的运算方法,运行效果下所示。
请输入一个整型数字: 125 加法操作结果:224 减法操作结果:100 乘法橾作结果:375 除法操作结果:62 取商操作结果:41 取余操作结果:2 取 2 次方操作结果:15625 取相反数操作结果:-125
BigDecimal add(BigDecimal augend) // 加法操作 BigDecimal subtract(BigDecimal subtrahend) // 减法操作 BigDecimal multiply(BigDecimal multiplieand) // 乘法操作 BigDecimal divide(BigDecimal divisor,int scale,int roundingMode ) // 除法操作其中,divide() 方法的 3 个参数分别表示除数、商的小数点后的位数和近似值处理模式。
模式名称 | 说明 |
---|---|
BigDecimal.ROUND_UP | 商的最后一位如果大于 0,则向前进位,正负数都如此 |
BigDecimal.ROUND_DOWN | 商的最后一位无论是什么数字都省略 |
BigDecimal.ROUND_CEILING |
商如果是正数,按照 ROUND_UP 模式处理;如果是负数,按照 ROUND_DOWN 模式处理 |
BigDecimal.ROUND_FLOOR |
与 ROUND_CELING 模式相反,商如果是正数,按照 ROUND_DOWN 模式处理; 如果是负数,按照 ROUND_UP 模式处理 |
BigDecimal.ROUND_HALF_ DOWN |
对商进行五舍六入操作。如果商最后一位小于等于 5,则做舍弃操作,否则对最后 一位进行进位操作 |
BigDecimal.ROUND_HALF_UP |
对商进行四舍五入操作。如果商最后一位小于 5,则做舍弃操作,否则对最后一位 进行进位操作 |
BigDecimal.ROUND_HALF_EVEN |
如果商的倒数第二位是奇数,则按照 ROUND_HALF_UP 处理;如果是偶数,则按 照 ROUND_HALF_DOWN 处理 |
import java.math.BigDecimal; import java.util.Scanner; public class Test10 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入一个数字:"); // 保存用户输入的数字 double num = input.nextDouble(); // 使用输入的数字创建BigDecimal对象 BigDecimal bd = new BigDecimal(num); // 计算大数字加上99.154的结果 System.out.println("加法操作结果:" + bd.add(new BigDecimal(99.154))); // 计算大数字减去-25.157904的结果 System.out.println("减法操作结果:" + bd.subtract(new BigDecimal(-25.157904))); // 计算大数字乘以3.5的结果 System.out.println("乘法操作结果:" + bd.multiply(new BigDecimal(3.5))); // 计算大数字除以3.14的结果,并保留小数后2位 System.out.println("除法操作结果(保留 2 位小数):" + bd.divide(new BigDecimal(3.14), 2, BigDecimal.ROUND_CEILING)); // 计算大数字除以3.14的结果,并保留小数后5位 System.out.println("除法操作结果(保留 5 位小数):" + bd.divide(new BigDecimal(3.14), 5, BigDecimal.ROUND_CEILING)); } }上述代码将用户输入的数字保存到 num 变量中,然后调用“newBigDecimal(num)”方法来创建 BigDecimal 对象。接下来的代码演示了如何调用 BigDecimal 类提供的运算方法,运行效果如下所示。
请输入一个数字: 100 加法操作结果:199.15399999999999636202119290828704833984375 减法操作结果:125.157903999999998490011421381495893001556396484375 乘法操作结果:350.0 除法操作结果(保留 2 位小数):31.85 除法操作结果(保留 5 位小数):31.84714
本文链接:http://task.lmcjl.com/news/10308.html