首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在没有科学符号的情况下将字符串转换为BigDecimal

问如何在没有科学符号的情况下将字符串转换为BigDecimal
EN

Stack Overflow用户
提问于 2015-10-29 11:37:38
回答 1查看 5.8K关注 0票数 3

我正在尝试将字符串值转换为BigDecimal值。当我使用0.000001234时,我在BigDecimal中得到了相同的值。但是,当我使用0.000000123或0.000000012时,我得到了1.23E-7或1.2E-8。

如果输入为String = 0.000000123,我需要如下所示

那么输出应该是,BigDecimal = 0.000000123

请帮帮我

代码语言:javascript
复制
import java.math.BigDecimal;

public class DecimalEx {


        public static void main(String args[]){

            String s = "0.000000023";
            BigDecimal big = new BigDecimal(s);         
            System.out.println(big);
        }
}
EN

回答 1

Stack Overflow用户

发布于 2015-10-29 11:42:04

您正在将String转换为没有问题的BigDecimal。BigDecimal值不知道该值是否有指数表示法.只是一个缩放的值。

您所看到的问题是,当您隐式调用BigDecimal.toString()时,有时会使用指数表示法来记录:

如果标度大于或等于零,调整后的指数大于或等于-6,则该数字将被转换为字符形式,而不使用指数表示法。

相反,您希望使用BigDecimal.toPlainString()

返回没有指数字段的此BigDecimal的字符串表示形式。

只需将最后一行代码更改为:

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

https://stackoverflow.com/questions/33413177

复制
相关文章

相似问题

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