如何在没有科学记数法的情况下将String转换为BigDecimal

时间:2015-10-29 11:37:39

标签: java

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

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

然后输出应该是, BigDecimal = 0.000000123

请帮帮我

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);
        }
}

1 个答案:

答案 0 :(得分:5)

您可以毫无问题地将q = 12;转换为StringBigDecimal值没有关于值是否具有指数表示法的概念......它只是一个缩放值。

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

  

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

相反,您想使用BigDecimal.toPlainString()

  

返回此BigDecimal的字符串表示形式,不带指数字段。

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

BigDecimal