http://terran-li2008.iteye.com/blog/205135

double d = 221.62999999999997 ;
  NumberFormat format = NumberFormat.getInstance();
  System.out.println(format.format(d));

输出结果:221.63

上述格式化方法带格式化符号1,234.87.00

double d = 221.62999999999997 ;

BigDecimal bigDecimal = new BigDecimal(d);
  System.out.println(bigDecimal.setScale(3, BigDecimal.ROUND_HALF_UP));

输出结果:221.630

=====================

example:

public class DecimalUtil {

private static final Log log = LogFactory.getLog(DecimalUtil.class);

private static final String SIXTH_DECIMAL_FORMAT = "###.######";

public static final DecimalFormat SIXTH_DECIMAL_FORMATTER = new DecimalFormat(
   SIXTH_DECIMAL_FORMAT);

public static String toStringDecimal(Double number) {
  if (number == null)
   return null;
  else
   return SIXTH_DECIMAL_FORMATTER.format(number);
 }

public static Double round(Double num, int scale) {
  if (num == null)
   return null;

BigDecimal val = new BigDecimal(num);
  val = val.setScale(scale, BigDecimal.ROUND_DOWN);
  return val.doubleValue();
 }

public static Double toSixthDecimal(Double num) {
  if (num == null)
   return null;
  else
   return round(num, 6);
 }

public static Double toSecondDecimal(Double num) {
  if (num == null)
   return null;
  else
   return round(num, 2);
 }
}

==============

注意,如果精度为6位时,使用ROUND_HALF_UP是不稳定的

BigDecimal val = new BigDecimal(98.4857555);
  val = val.setScale(6, BigDecimal.ROUND_HALF_UP);

结果是98.485755,并未进位。

可以使用以下代替:

DecimalFormat SIXTH_DECIMAL_FORMATTER = new DecimalFormat("###.######");

SIXTH_DECIMAL_FORMATTER.format(98.4857555);

java 中格式化小数位数相关推荐

  1. C#中格式化小数位数为指定位数的工具类

    场景 C#中怎样格式化小数位数为指定位数的工具类. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书. ...

  2. POI读取excel中读取小数位数过多,数值精度损失问题解决

    POI读取excel中读取小数位数过多,数值精度损失问题解决 参考来源 项目中需要用到读取excel功能,当excel中有计算公式时,读取到的数值就可能会出现多个小数点的问题 例如: 2.2 --&g ...

  3. java输出值取后两位小数,java中取小数点后两位(四种步骤)

    java中取小数点后两位(四种方法) 一 java.text.DecimalFormat df = new java.text.DecimalFormat("#.##"); dou ...

  4. java工作笔记018---java中BigDecimal小数位数的四舍五入等操作

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 这个电视购物项目大量用到了BigDecimal,有钱内存大,哈哈 一.简介 Java在java.m ...

  5. 【详解Java中格式化处理】

    在Java中我们需要对一个数字进行四舍五入处理或者是对一个字符串进行格式化处理,我们需要使用String.Format方法或者其他格式化方法 一.Format方法     比如:DecimalForm ...

  6. dateformat 返回类型_详解Java中格式化日期的DateFormat与SimpleDateFormat类

    DateFormat其本身是一个抽象类,SimpleDateFormat 类是DateFormat类的子类,一般情况下来讲DateFormat类很少会直接使用,而都使用SimpleDateFormat ...

  7. 【java笔记】java中用于小数进位的BigDecimal.setScale方法

    BigDecimal.setScale主要用于对BigDecimal数据小数点后的位数进行进位.舍位.截断等操作.其进位方式主要有以下8种,依次分别对应着数字0~7,即写它们和写它们对应的数字是等价的 ...

  8. java中格式化输出大神Formatter简历

    一.干嘛的?(作用) 在java中,所有新的格式化功能都有formatter类处理.可以将formatter看作一个翻译器,它将你的格式化字符串与数据翻译成需要的结果.比如很多地方格式输出都有用到,像 ...

  9. java 判断 nan_判断NaN,js和java中取小数点后几位

    js取小数点后几位 方法1. 最笨的办法 function get() { var s = 22.127456 ""; var str = s.substring(0,s.inde ...

最新文章

  1. 你的神经网络不起作用的37个理由
  2. Windows7 VMware虚拟机安装Apple Mac OSX v10.7 Lion
  3. ActivityManagerService简要分析
  4. 序列化对象C++对象的JSON序列化与反序列化探索
  5. java演练 数组的逆序文字玩法 你是猪才怪
  6. Putty和Psftp管理linux主机
  7. 软考高级 真题 2016年上半年 信息系统项目管理师 论文
  8. Python爬虫案例:下载酷某音乐文件
  9. 算法音乐往事:二次元女神“初音未来”诞生记
  10. PHP四端代码,壹脉销客智能名片,全套四端开源代码
  11. java判断生肖_Java写出生肖年判断
  12. 火影忍者新忍出击服务器正在维修,火影忍者手游更新公告 新忍出击资源翻倍...
  13. 链游界王炸巨作 一个足够炫酷的NFT赛犬游戏震撼问世
  14. 天赐转债,强联转债,再22转债上市价格预测
  15. 通过css让图片设置成黑白色
  16. hyperlynx si 前仿真
  17. 建筑标准何其之多,python爬虫半天全梭
  18. 用tensorflow.js实现浏览器内的手写数字识别
  19. SCIENCE ADVANCES | 精神分裂症患者肠道微生物组调节小鼠谷氨酸-谷氨酰胺-GABA循环和精神分裂症相关行为
  20. EtherCAT设备协议详解一、EtherCAT概述

热门文章

  1. iOS之深入解析图片解压缩到渲染的过程与原理
  2. LeetCode 多线程 1114. 按序打印
  3. LeetCode Algorithm 204. 计数质数
  4. TensorFlow模型持久化
  5. 视觉盛宴 HTML5 3D动画应用赏析
  6. 【C++】 C++标准模板库(八) MultiMaps
  7. 【Linux网络编程】Linux多播问题(No such device)解决方法
  8. mysql数据库优化韩顺平_韩顺平 Mysql数据库优化(一) 优化概述
  9. linux写一个脚本杀进程,linux下如何自动检测并重新启动一个死掉的进程,然后再把它杀死:)(shell脚本实现)...
  10. matlab中的scramble函数,matlab 中 hold on 和hold off的使用