高精度十进制数运算
BigDecimal
是 Java 中用于进行高精度十进制数运算的类,位于 java.math
包下
字符串创建 BigDecimal
对象是最推荐的方式
BigDecimal num1 = new BigDecimal("123.456");
BigDecimal num1 = new BigDecimal("10.5");
BigDecimal num2 = new BigDecimal("2.5");
// 加法
BigDecimal sum = num1.add(num2);
// 减法
BigDecimal difference = num1.subtract(num2);
// 乘法
BigDecimal product = num1.multiply(num2);
// 除法,需要指定精度和舍入模式
BigDecimal quotient = num1.divide(num2, 2, BigDecimal.ROUND_HALF_UP);
ROUND_UP
:向远离零的方向舍入。ROUND_DOWN
:向零的方向舍入。ROUND_HALF_UP
:四舍五入。ROUND_HALF_DOWN
:五舍六入。-
int result = num1.compareTo(num2); if (result > 0) { System.out.println("num1 大于 num2"); } else if (result < 0) { System.out.println("num1 小于 num2"); } else { System.out.println("num1 等于 num2"); }
import java.math.BigDecimal;
import java.util.Scanner;
public class Main {
/**
* 主函数入口
* 本程序接收用户输入的一个整数和一个BigDecimal类型的数,然后计算2的整数次方乘以输入的BigDecimal数,并输出结果
* 使用BigDecimal是为了处理大数运算,并且可以设置输出的精度和舍入模式,以保证计算结果的精确性
* @param args 命令行参数
*/
public static void main(String[] args) {
// 创建Scanner对象,用于接收用户输入
Scanner sc = new Scanner(System.in);
// 接收用户输入的整数
int n = sc.nextInt();
// 接收用户输入的BigDecimal类型的数
BigDecimal d = sc.nextBigDecimal();
// 创建一个值为2的BigDecimal对象,用于后续的指数计算
BigDecimal m = new BigDecimal("2");
// 计算2的n次方乘以d,不保留小数点后的位数,采用四舍五入的方式进行舍入
System.out.println(m.pow(n).multiply(d).setScale(0, BigDecimal.ROUND_HALF_UP));
}
}