如何保留小数点后N位?
2024-09-02 00:00:47
2014年10月17日09:48:39
在做项目中遇到的,要把想显示的数据进行规定小数位的保留,下面写一下用过的方法:
1. BigDecimal 方法(我做项目的时候用的方法)
代码:
java.math.BigDecimal
BigDecimal bd = new BigDecimal("3.14159265");
bd = bd.setScale(3,BigDecimal.ROUND_HALF_UP); BigDecimal aa = new BigDecimal("3.1");
aa = aa.setScale(3,BigDecimal.ROUND_HALF_UP);
这里面的bd是自定义的变量,即最后取得小数点后若干位的数,3表示小数点后两位
输入结果:
bd=3.142
aa=3.100
2.DecimalFormat 方法
DecimalFormat df1 = new DecimalFormat(“0.0″); //保留1位小数,带前导零 DecimalFormat df2 = new DecimalFormat(“#.#”); //保留1位小数,可以不带前导零 DecimalFormat df3 = new DecimalFormat(“000.00″); //保留2位小数,带前导零 DecimalFormat df4 = new DecimalFormat(“###.##”); //保留2位小数,可以不带前导零
模式中#为可选,存在则出现,不存在则不出现;
模式中0为必须,存在则为具体数字,不存在则为零;
例如:
DecimalFormat df1 = new DecimalFormat("0.0"); //保留1位小数,带前导零
DecimalFormat df2 = new DecimalFormat("#.#"); //保留1位小数,可以不带前导零
DecimalFormat df3 = new DecimalFormat("000.000"); //保留2位小数,带前导零
DecimalFormat df4 = new DecimalFormat("###.###"); //保留2位小数,可以不带前导零 System.out.println(df1.format(31.1556));
System.out.println(df2.format(31.1556));
System.out.println(df3.format(31.1556));
System.out.println(df4.format(31.1556));
System.out.println(df3.format(31.15));
System.out.println(df4.format(31.15));
输出结果:
31.2
31.2
1531.156
1531.156
1531.150
1531.15
结论:
1.df.format(double)的最终输出类型是String类型,但是参数必须为double类型
2.模式中#为可选,存在则出现,不存在则不出现;
模式中0为必须,存在则为具体数字,不存在则为零;
3.整数位假如超过了本身定义的位数,那么就将整数位全部位数都显示出来。
最新文章
- 浅谈Java中的equals和==
- PageObject小结
- poj3393[模拟题]
- cc2530 timer 1 PWM 输出
- Eclipse的下载和安装
- android 11 模拟onclick 事件
- 优化:代码移动code motion
- nodejs 下载网页及相关资源文件
- C#中的关键字
- 【LeetCode】25. Reverse Nodes in k-Group
- MySQL数据库web维护客户端管理工具
- ubuntu18.04 安装mysql 5.7.22
- 折腾Java设计模式之观察者模式
- centos7下/etc/rc.local文件里配置的开机启动项不执行的解决办法
- Docker学习笔记之docker-save vs docker-export vs docker-commit
- 普通rgb转换为16进制
- 二:Recovery models(恢复模式)
- iOS-项目开发1-图片浏览器
- Spark内部流程图
- Struts2重新学习2之struts2和struts1的区别
热门文章
- 网络设备MIB浏览器ifType、ifDescr、ifMtu、ifInOctets等的含义(Zabbix SNMP)
- 应用安全-工具使用-Burpsuite
- bash 特殊符号的含义
- Meet in the middle算法总结 (附模板及SPOJ ABCDEF、BZOJ4800、POJ 1186、BZOJ 2679 题解)
- 【JAVA】 03-Java中的异常和包的使用
- docker-compose启动报错:Creating network ";soft_default"; with the default driver ERROR: cannot create network e5b60fc347db868e471b61ea185fd24e3ea7e2730149d91ad70baf29732aaff0 (br-e5b60fc347db): conflicts wi
- 121-基于TI DSP TMS320DM8148的全高清1080P 60fs的视频编解码系统 机器人主板
- Linux防火墙--iptables--白名单配置
- 同步mysql
- RBAC用户权限管理数据库设计的图文详解