首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么输出用科学符号表示?

问为什么输出用科学符号表示?
EN

Stack Overflow用户
提问于 2015-05-20 14:30:52
回答 2查看 287关注 0票数 3

为什么以下代码的输出是用科学符号表示的?

代码语言:javascript
复制
      BigDecimal val = new BigDecimal("0000.000000111");
      System.out.println(val);

输出:1.11e-8

但是这段代码的输出是十进制格式的。

代码语言:javascript
复制
      BigDecimal val = new BigDecimal("0000.000011111");
      System.out.println(val);

输出:0.000011111

是否有办法为第一个字符串获得适当的十进制值(如第二个输出)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-20 14:36:52

如果您查看BigDecimal的功能,它将解释如何创建输出:

接下来,计算一个调整的指数;这是负值,加上转换后的无标度值中的字符数,减去一个。也就是说,-scale+( ulength -1),其中ulength是以十进制数字表示的无标度值的绝对值的长度(其精度)。 如果标度大于或等于零,调整后的指数大于或等于-6,则该数字将被转换为字符形式,而不使用指数表示法。在这种情况下,如果小数点为零,则不添加小数点,如果小数点为正,则插入小数点,小数点的大小指定小数点右侧的字符数。

如果您希望输出没有e10表示法,请使用toPlainString()。

票数 4
EN

Stack Overflow用户

发布于 2015-05-20 14:35:07

使用toPlainString方法

代码语言:javascript
复制
BigDecimal val = new BigDecimal("0000.000011111");
          System.out.println(val.toPlainString());
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30352694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档