BigInteger
1、大数的构造函数
(1)public BigInteger(String val)
(2)public BigInteger(String val, int radix) :将radix进制的字符串转化为十进制的BigInteger
(3)BigInteger(byte[]):把一个包含着正负号整数的二进制补码的字节数组翻译成BigInteger
(4)public BigInteger(int signum, byte[] magnitude):signum为符号位 1为正 0为0 -1为负,数组同上
2、大数的操作
(1)加减乘除 取余->remainder()/mod() 取反数 negate()
(2)pow() gcd() abs() max() min()
(3)compareTo() equals()
3、大数的基本常量
(1)BigInteger.ONE
(2)BigInteger.TEN
(3)BigInteger.ZERO
4、大整数的进制转换——m进制的字符串x转换为n进制的数
Scanner in = new Scanner(System.in);int m, n;BigInteger ans;String x;while(in.hasNext()){m = in.nextInt();n = in.nextInt();x = in.nextLine();x = in.nextLine();ans = new BigInteger(x, m);System.out.println(ans.toString(n));}
BigDecimal
1、构造函数
(1)参数是字符串 - BigDecimal BigDecimal(String s);
//常用,推荐使用 new BigDecimal(String.valueOf(double)) || new BigDecimal(Double.toString(double))
(2)参数是double - static BigDecimal valueOf(double d);
//常用,推荐使用 BigDecimal.valueOf(double)
(3)举例说明
double d = 1.1;
BigDecimal b1 = new BigDecimal(String.valueOf(d));
BigDecimal b2 = new BigDecimal(Double.toString(d));
BigDecimal b3 = BigDecimal.valueOf(d);
2、保留小数位
(1)BigDecimal.setScale(1)
(2)BigDecimal.setScale(1, BigDecimal.ROUND_UP/BigDecimal.ROUND_DOWN/BigDecimal.ROUND_CEILING/…)
3、小数点处理
(1)保留两位小数
方法一:{
double c=3.154215;
java.text.DecimalFormat myformat=new
java.text.DecimalFormat(“0.00”);
String str = myformat.format?;
}
方式二:{
java.text.DecimalFormat df =new
java.text.DecimalFormat("#.00");
df.format(你要格式化的数字);
例:new java.text.DecimalFormat("#.00").format(3.1415926)
#.00 表示两位小数 #.0000四位小数 以此类推…
}
方式三:{
double d = 3.1415926;
String result = String .format("%.2f");
%.2f %. 表示 小数点前任意位数 2 表示两位小数 格式后的结果为f 表示浮点型
(2)四舍五入
double f = 111231.5585;
BigDecimal b = new BigDecimal(f); //保留2位小数
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
4、几个常用方法
(1)取余:reminder() 求相反数:negate() 比较:compareTo()
(2)add() subtract() multiply() divide()【可设置精度】