目录
个人博客
www.tothefor.com
1.进制转换
1.1 十进制转其他进制
一个重要的函数:Integer.toString(k,r) ,将十进制的数k转换为r进制的数。返回一个String。
int k = 17;
System.out.println(Integer.toBinaryString(k)); //转二进制
System.out.println(Integer.toOctalString(k)); //转八进制
System.out.println(Integer.toHexString(k)); //转十六进制
int r =2;
System.out.println(Integer.toString(k,r)); //转r进制
r=8;
System.out.println(Integer.toString(k,r)); //转r进制
r=16;
System.out.println(Integer.toString(k,r)); //转r进制
1.2 其他进制转换为十进制
函数:Integer.parseInt(str,r) ,将r进制的数字字符串str转换为十进制,并返回十进制的数。
System.out.println(Integer.parseInt("10001",2));
System.out.println(Integer.parseInt("21",8));
System.out.println(Integer.parseInt("11",16));
//输出结果
17
17
17
2.保留小数位数
2.1 String.format()
double a = 123.456789;
double b = 123.444444;
String sa = String.format("%.2f",a);
System.out.println(sa);
String sb = String.format("%.2f",b);
System.out.println(sb);
//输出
123.46
123.44
//简写
System.out.println(String.format("%.2f",a));
2.2 DecimalFormat的format方法
double a = 123.456789;
double b = 123.444444;
DecimalFormat dfa = new DecimalFormat("0.00");
System.out.println(dfa.format(a));
DecimalFormat dfb = new DecimalFormat("0.00");
System.out.println(dfb.format(b));
//输出
123.46
123.44
//简写
System.out.println(new DecimalFormat("0.00").format(a));
DecimalFormat 类主要靠 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。如:
double a = 123.00;
DecimalFormat dfa = new DecimalFormat("#.##");
System.out.println(dfa.format(a));
DecimalFormat dfb = new DecimalFormat("0.00");
System.out.println(dfb.format(a));
//输出
123
123.00
2.3 BigDecimal的setScale方法(了解)
double f = 111231.5585;
BigDecimal bg = new BigDecimal(f);
double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); //setScale已经过时
System.out.println(f1);
2.4 NumberFormat的setMaximumFractionDigits方法(了解)
double f = 111231.5585;
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);
System.out.println(nf.format(f));