java 保留小数点后两位的几种方法举例
2016-07-15 10:01
696 查看
方法一:使用DecimalFormat类(最常用)
输出:123.46
方法二:使用BigDecimal类的setScale方法
结果:123.46
方法三:使用setMaximumFractionDigits方法
方法四:利用算法实现
方法五:通过类型转换
方法六:
方法七:
3.14,3.14,3.14
//1.#.00 表示两位小数 #.0000四位小数 以此类推... double d1=123.4567; DecimalFormat df=new DecimalFormat("#.00"); String dd1=df.format(d1); //返回的是一个String类型的值 System.out.println(Double.parseDouble(dd1));//结果是四舍五入
输出:123.46
方法二:使用BigDecimal类的setScale方法
double d2=123.4567; BigDecimal bd=new BigDecimal(d2); double dd2=bd.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();//参数:ROUND_HALF_UP--四舍五入 System.out.println(dd2);
结果:123.46
方法三:使用setMaximumFractionDigits方法
//3.结果也是四舍五入 double d3=3.1415926; NumberFormat nf=NumberFormat.getNumberInstance(); nf.setMaximumFractionDigits(2);//设置要保留的数位 String s=nf.format(d3); System.out.println(s);结果:3.14
方法四:利用算法实现
double d4=3.1415926; d4=Math.round(d4*100); double dd4=d4/100;//保留3位 就是*1000 ,再/1000 System.out.println(dd4);结果:3.14
方法五:通过类型转换
//5 先*100转成int再除以100.0(是100的小数类型),同理 3位的话就是1000 double d5=3.1415926; d5=((int)(d5*100))/100.0; System.out.println(d5);结果:3.14
方法六:
double d6=3.1415926; StringBuilder s6=new StringBuilder(d6+""); String ss6=s6.substring(0, s6.indexOf(".")+3); System.out.println(Double.parseDouble(ss6));结果:3.14
方法七:
double a=3.1415926; double b=3.1415926; double c=3.1415926; String str1=String.format("%.2f",a); System.out.println(Double.parseDouble(str1)); String str2= String.format("%.2f,%.2f,%.2f ",a,b,c);//可以传多参数,就是不好取 System.out.println(str2);结果:3.14
3.14,3.14,3.14
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树