1 double f = 3.1516
BigDecimal b = new BigDecimal(f)
2 double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()
new java.text.DecimalFormat("#.00").format(3.1415926)
3 double d = 3.1415926
String result = String.format("%.2f", d)
// %.2f %. 表示 小数点前任意位数 2 表示两位小数 格式后的结果为f 表示浮点型。
4 Math.round(5.2644555 * 100) * 0.01d
//String.format("%0" + 15 + "d", 23) 23不足15为就在前面补0
1 方法点拨求近似数时:保留整数,表示精确到个位;保留一位小数,表示精确到十分位;保留两位小数,表示精确到百分位……
2、保留一位小数
如果保留一位小数,就要把第二、三位小数省略。
在表示近似数时,小数末尾的0不能去掉。
3、保留整数部分:
≈1
方式一:四舍五入
double f = 111231.5585
BigDecimal b = new BigDecimal(f)
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()
保留两位小数
---------------------------------------------------------------
方式二:
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 表示浮点型
方式四:
NumberFormat ddf1=NumberFormat.getNumberInstance()
void setMaximumFractionDigits(int digits)
digits 显示的数字位数
为格式化对象设定小数点后的显示的最多位,显示的最后位是舍入的
使用DecimalFormat格式化Scanner input = new Scanner(System.in)
int[] scores = new int[4]
int sum = 0
for (int i = 0i <4i++) {
System.out.println("请输入第" + (i + 1) + "位同学的成绩")
scores[i] = input.nextInt()
sum = sum + scores[i]
}
double ave = sum / 4.0
DecimalFormat format = new DecimalFormat("0.00")
System.out.println("平均成绩是:" + format.format(ave))