Java中如何保留小数点后几位数字

保留小数点后几位数字

对于一些Java的初学者(博主也只算平民级别,以下是我的见解,可能有小错误,有错莫怪),如何保留一个double型小数点后固定的位数很是让人苦恼,因为我刚学的时候不知道如何保留小数点后几位。下面是我的一些方法。

第一种方法:格式化输出

这种方法大家已经见怪不怪了,学过C语言的同学都知道这中输出方法在C中很常用,其实在Java中,这种方法也可以使用。比如看下面的代码。

public class SavePoint {
	public static void main(String[] args) {
		double a=7.0/3;
		System.out.println(a);
		//第一种方法
		System.out.printf("%.2f\n",a);
	}
}

输出的结果为:

2.3333333333333335
2.33

从结果上看,该方法可行。
下面来介绍第二种方法。

第二种方法:DecimalFormat类

这种方法对于初学者来说不常用,因为这种方法牵扯到了一个类的使用。代码如下:

public class SavePoint {
	public static void main(String[] args) {
		double a=7.0/3;
		System.out.println(a);
		//第二种方法
		DecimalFormat d=new DecimalFormat("#.00");
		System.out.println(d.format(a));
		
	}
}

输出的结果和上面一样。同样可以输出保留小数点后两位。这种方法还可以优化。

public class SavePoint {
	public static void main(String[] args) {
		double a=7.0/3;
		System.out.println(a);
		//第二种方法
		System.out.println(new DecimalFormat("#.00").format(a));
	}
}

输出结果为:

2.3333333333333335
2.33

这两种输出方式其实都用了DecimalFormat类,本质还是一样的,只不过第二种比较简单。

第三种方法:“运算输出”

有些同学觉得以上两种方法太麻烦,而且自己也不喜欢格式化输出(其实博主也不喜欢格式化输出,受到了当时在ACM总是格式化输出的影响,因此有些hate这种方法),什么方法不重要,哪种适合自己的方法才是最好的方法。来看代码

public class SavePoint {
	public static void main(String[] args) {
		double a=7.0/3;
		System.out.println(a);
		//第三种方法
		System.out.println((int)(a*100)/100.0);
	}
}

输出结果为:

2.3333333333333335
2.33

可知结果和上面两种方法输出的一样。博主一般情况也喜欢这种方法,因为比较简单明确,更适合理解。如果想要自己代码的逼格高一点可以使用第二种方法。

欢迎各位采纳,如需转载请附本链接。

  • 17
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Java,有几种方法可以实现保留小数点两位的效果。其一种方法是使用BigDecimal类和setScale()方法。例如,以下是一个使用BigDecimal和setScale()方法来保留两位的示例: public static String format1(double value) { BigDecimal bd = new BigDecimal(value); bd = bd.setScale(2, RoundingMode.HALF_UP); return bd.toString(); } 另一种方法是使用DecimalFormat类。以下是一个使用DecimalFormat来保留两位的示例: public static String format2(double value) { DecimalFormat df = new DecimalFormat("0.00"); df.setRoundingMode(RoundingMode.HALF_UP); return df.format(value); } 通过调用format1()或format2()方法,并传入要格式化的数字作为参,即可获得保留两位的结果。希望对你有所帮助! <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [java、freemarker保留两位](https://download.csdn.net/download/weixin_38682161/12784007)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Java - 保留小数点两位](https://blog.csdn.net/zouzhigang96/article/details/50467248)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值