DecimalFormat可以按照需要格式化数字,下面简单介绍一下几种使用。其中自己也踏踏实实踩了坑,谨此记录。

保留位数设置
public class DecimalUtils {

    //保留2位,不足补0
private static final DecimalFormat df_fill_zero = new DecimalFormat("00.00");
//保留2位,不足保留原位数
private static final DecimalFormat df_fill_null = new DecimalFormat("##.##"); public static void main (String args[]) {
System.out.println(df_fill_zero.format(1.2)); //01.20 不足2位补0
System.out.println(df_fill_null.format(1.2)); //1.2 不足2位保留原数位 System.out.println(df_fill_zero.format(1.224)); //01.22 超出2位截断(舍入模式后面再说)
System.out.println(df_fill_null.format(1.224)); //1.22 超出2位截断(舍入模式后面再说) System.out.println(df_fill_zero.format(123.22)); //123.22
System.out.println(df_fill_null.format(123.22)); //123.22
}
}

运行结果:

01.20
1.2
01.22
1.22
123.22
123.22

舍入模式

默认舍入模式

public class FormatDefault {
//保留3位,不足保留原位数
private static final DecimalFormat df_t = new DecimalFormat("#.###"); public static void main (String args[]) {
//默认舍入模式(RoundingMode.HALF_EVEN)
System.out.println(df_t.format(1234.2224)); //1234.222
System.out.println(df_t.format(1234.2226)); //1234.223 System.out.println(df_t.format(1234.2225)); //1234.223 最后一位偶数,舍入
System.out.println(df_t.format(1234.2235)); //1234.223 最后一位奇数,舍去
}
}

四舍五入模式

public class FormatHalfUp {

    /***
* 最多保存3位小数,如果number少于3位则保留原小数位数,如果多于3位则四舍五入保留3位小数
*/
public static String formatHalfUp(double number) {
DecimalFormat df = new DecimalFormat("#.###");
df.setRoundingMode(RoundingMode.HALF_UP);
return df.format(BigDecimal.valueOf(number)); //防止精度丢失,数字类型用BigDecimal
} public static void main (String args[]) {
//四舍五入舍入模式(RoundingMode.HALF_UP)
System.out.println(formatHalfUp(1234.2224)); //1234.222
System.out.println(formatHalfUp(1234.2226)); //1234.223 System.out.println(formatHalfUp(1234.2225)); //1234.223
System.out.println(formatHalfUp(1234.2235)); //1234.224
}
}

最新文章

  1. JSP 页面缓存以及清除缓存
  2. linux第2天 信号 wait
  3. ie6下 gif动画不动
  4. codeforces D. Count Good Substrings
  5. UIImageView添加边框和阴影
  6. EasyUI - Resizable 调整大小
  7. 深入理解Session与Cookie(一)
  8. Mybatis 系列10
  9. HTML学习之制作导航网页
  10. vue文档全局api笔记1
  11. 蓝牙协议分析(4)_IPv6 Over BLE介绍
  12. javascript打印1-100内的质数
  13. Spring bean默认为单例模式会引发并发问题吗
  14. 《Gogoing》Alpha版使用说明
  15. O2O、C2C、B2B、B2C
  16. 【原】解决Debug JDK source 无法查看局部变量的问题方案(重新编译rt.jar包)
  17. #阿里云#云服务器部署Django(基础篇)
  18. Node.js Cookie管理
  19. [翻译] BezierString
  20. 78. Subsets(回溯)

热门文章

  1. css3系列--概述
  2. TCP协议之三次握手四次挥手
  3. Codeforces 963B Destruction of a Tree 思维+dfs
  4. mapreduce图解系列
  5. jenkins部署github项目持续集成
  6. JS中关于数组的操作
  7. CSS中的一些伪类
  8. manjaro linux java环境配置
  9. 10.16 ln软硬链接的创建等
  10. 洛谷 P3806 (点分治)