package com.clzhang.sample;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.NumberFormat; public class DoubleTest { /**
* 保留两位小数,四舍五入的一个老土的方法
* @param d
* @return
*/
public static double formatDouble1(double d) {
return (double)Math.round(d*100)/100;
}


/**
* The BigDecimal class provides operations for arithmetic, scale manipulation, rounding, comparison, hashing, and format conversion.
* @param d
* @return
*/
public static double formatDouble2(double d) {
// 旧方法,已经不再推荐使用
// BigDecimal bg = new BigDecimal(d).setScale(2, BigDecimal.ROUND_HALF_UP);


// 新方法,如果不需要四舍五入,可以使用RoundingMode.DOWN
BigDecimal bg = new BigDecimal(d).setScale(2, RoundingMode.UP);


return bg.doubleValue();
} /**
* NumberFormat is the abstract base class for all number formats.
* This class provides the interface for formatting and parsing numbers.
* @param d
* @return
*/
public static String formatDouble3(double d) {
NumberFormat nf = NumberFormat.getNumberInstance(); // 保留两位小数
nf.setMaximumFractionDigits(2);


// 如果不需要四舍五入,可以使用RoundingMode.DOWN
nf.setRoundingMode(RoundingMode.UP);


return nf.format(d);
}


/**
* 这个方法挺简单的。
* DecimalFormat is a concrete subclass of NumberFormat that formats decimal numbers.
* @param d
* @return
*/
public static String formatDouble4(double d) {
DecimalFormat df = new DecimalFormat("#.00");


return df.format(d);
}


/**
* 如果只是用于程序中的格式化数值然后输出,那么这个方法还是挺方便的。
* 应该是这样使用:System.out.println(String.format("%.2f", d));
* @param d
* @return
*/
public static String formatDouble5(double d) {
return String.format("%.2f", d);
} public static void main(String[] args) {
double d = 12345.67890; System.out.println(formatDouble1(d));
System.out.println(formatDouble2(d));
System.out.println(formatDouble3(d));
System.out.println(formatDouble4(d));
System.out.println(formatDouble5(d));
} }

3. 输出

12345.68
12345.68
12,345.68
12345.68
12345.68

最新文章

  1. MMORPG大型游戏设计与开发(客户端架构 part6 of vegine)
  2. Asp.net MVC 视图(二)
  3. Linux基础入门学习笔记20135227黄晓妍
  4. springMVC文件上传(转)
  5. Android 通过xml 自定义图片
  6. CF:322D - Ciel and Duel 贪心 或者 DP 我用的贪心 。。难道sort跟qsort是不一样的么?
  7. 做优步有什么旁门左道吗?No,贪小便宜会吃大亏!
  8. 【制作镜像Win*】文件准备
  9. 是否存在两个树的和是固定数 hashmap使用 leecode
  10. ajax与Servlet
  11. Javascript 学习笔记 无缝滚动
  12. 移动端web开发的注意点大总结
  13. linux setup的安装
  14. vue-cli 第一章
  15. opencv计算两个轮廓之间hu矩相似程度,MatchShapes
  16. trap实现跳板机
  17. .NET Core下开源任务调度框架Hangfire的Api任务拓展(支持秒级任务)
  18. java 字节流文件复制方法总结
  19. ubuntu安装python MySQLdb模块
  20. Ceph系统的层次结构

热门文章

  1. tshark----wireshark的命令行工具
  2. 0. 跟踪标记 (Trace Flag) 简介
  3. 4-urllib库添加代理,添加请求头格式 模板
  4. DNS Brand
  5. 解密虚拟 DOM——snabbdom 核心源码解读
  6. MySQL主从.md
  7. 【洛谷】【堆+贪心】P1484 种树
  8. vue 项目项目启动时由于EsLint代码校验报错
  9. ethers.js-3-Providers
  10. AdminLTE前端模板