java保留小数位,常用三种方法!!!

java保留小数位,常用三种方法!!!

1.java.text.DecimalFormat

java.text.DecimalFormat df =new java.text.DecimalFormat("#.00");
df.format(你要格式化的数字);

例:new java.text.DecimalFormat("#.00").format(3.1415926)
结果为3.14

#.00 表示两位小数, #.0000四位小数 以此类推…

这里只要改变index的值便可以得到想要的位数

int x=sc.nextInt();
int y=sc.nextInt();
int z=sc.nextInt();
double x1=sc.nextDouble();
double y1=sc.nextDouble();
double z1=sc.nextDouble();
int index=sc.nextInt();
double sum=0;
sum=x1/x+y1/y+z1/z;
String weishu="#.";
while(index>0) {
		weishu+="0";
		index--;
	}
System.out.println(new java.text.DecimalFormat(weishu).format(sum));

2.String .format("%.2f",sum)

“%.2f” 表示保留两位小数,sum是你传入的值
同样的下面代码你只要改变index的值,便可以得到想要的位数

int x=sc.nextInt();
int y=sc.nextInt();
int z=sc.nextInt();
double x1=sc.nextDouble();
double y1=sc.nextDouble();
double z1=sc.nextDouble();
int index=sc.nextInt();
double sum=0;
sum=x1/x+y1/y+z1/z;		
System.out.println(String.format("%."+index+"f",sum));

3.BigDecimal

使用BigDecimal对象的 setScale() 方法进行格式化
index表示小数的位数

int x=sc.nextInt();
int y=sc.nextInt();
int z=sc.nextInt();
double x1=sc.nextDouble();
double y1=sc.nextDouble();
double z1=sc.nextDouble();
int index=sc.nextInt();//保留几位数
double sum=0;
sum=x1/x+y1/y+z1/z;
BigDecimal bd = new BigDecimal(sum);
System.out.println(bd.setScale(index, RoundingMode.HALF_UP));
  • 0
    点赞
  • 11
    收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:创作都市 设计师:CSDN官方博客 返回首页
评论 1

打赏作者

Free的午后

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值