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
版权说明:Copyright © 广州松河信息科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州松河信息科技有限公司 版权所有