我正在尝试将字符串值转换为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);
}
}发布于 2015-10-29 11:42:04
您正在将String转换为没有问题的BigDecimal。BigDecimal值不知道该值是否有指数表示法.只是一个缩放的值。
您所看到的问题是,当您隐式调用BigDecimal.toString()时,有时会使用指数表示法来记录:
如果标度大于或等于零,调整后的指数大于或等于-6,则该数字将被转换为字符形式,而不使用指数表示法。
相反,您希望使用BigDecimal.toPlainString()
返回没有指数字段的此BigDecimal的字符串表示形式。
只需将最后一行代码更改为:
System.out.println(big.toPlainString());https://stackoverflow.com/questions/33413177
复制相似问题