博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何使java中double类型不以科学计数法表示
阅读量:6198 次
发布时间:2019-06-21

本文共 701 字,大约阅读时间需要 2 分钟。

在java中,把一个double或者BigDecimal的小数转换为字符串时,经常会用科学计数法表示,而我们一般不想使用科学计数法,可以通过:

DecimalFormat a = new DecimalFormat("#,##0.00000000");
        System.out.println(a.format(11111111.0000001000000001));
的方式来格式化输出字符串。
对于BigDecimal的小数,如果制定精度<=6, 则可以放心的使用其toString函数。但是对于>6的精度,有可能会使用科学计数法,查看器代码有如下判断:
long adjusted = -(long)scale + (coeff.length-1);
        if ((scale >= 0) && (adjusted >= -6)){
                  非科学计数法的toString.
        }
其中scale指BigDecimal的精度,
coeff对应使用BigInteger存储的值的toString字符串, coeff = intVal.abs().toString().toCharArray(),也就是说BigDecimal在对应精度下的整数值,例如BigDecimal ob = new BigDecimal(0.00000011), ob的精度为7, 则coeff="1";如果ob=new BigDecimal(0.10000011), 则coeff="1000001";如果ob=new BigDecimal(0.00000001), 则coeff="0";

 

 

多使用bigdecimal  少使用double

转载地址:http://xmjca.baihongyu.com/

你可能感兴趣的文章
2015年10月22日作业
查看>>
因此直接yum -y install mysql mysql-server 即可完成安装
查看>>
傅里叶分析
查看>>
我的友情链接
查看>>
Sales_item.h
查看>>
我与linux的不解之缘
查看>>
linux4.15.1编译init/mounts报错
查看>>
我的友情链接
查看>>
Windows系统网卡开启VLAN封装后与CISCO6509中继口不通
查看>>
flex框架
查看>>
闲时杂谈之前言
查看>>
文件的查找详细使用
查看>>
我的友情链接
查看>>
2013年2月份十大重要安全漏洞
查看>>
OpenShift 4预览
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
windows2008域服务器安装
查看>>
2048游戏完整源代码揭秘和下载 (二)
查看>>
我为什么学编程?
查看>>