我正在尝试将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);
}
}
答案 0 :(得分:5)
您可以毫无问题地将q = 12;
转换为String
。 BigDecimal
值没有关于值是否具有指数表示法的概念......它只是一个缩放值。
您遇到的问题是隐式调用BigDecimal.toString()
,有时会记录为使用指数表示法:
如果比例大于或等于零且调整后的指数大于或等于-6,则数字将转换为字符形式,而不使用指数表示法。
相反,您想使用BigDecimal.toPlainString()
:
返回此BigDecimal的字符串表示形式,不带指数字段。
只需将您的最后一行代码更改为:
BigDecimal