有人可以帮我得到确切的值BigDecimal吗?我的代码如下,import java.math.BigDecimal;public class HelloWorld{ public static void main(String []args){ String x="2.7955814565E10"; BigDecimal y=new BigDecimal(x); System.out.println(y.toPlainString()); }}我在数据库中的实际值是27955814565.0,一个String. 我从 DB 读取这个字符串并将它设置在一个 bean 类中,其中 amt 字段的类型为 string,使用值“2.7955814565E10”。当我尝试将其转换为 a 时,BigDecimal我得到 27955814565 而不是 27955814565.0。有人能告诉我是什么问题,因为对于其余所有字段,将字符串值转换为 BigDecimal 的逻辑工作正常,我想要 DB 中的确切值吗?
2 回答
侃侃尔雅
TA贡献1801条经验 获得超16个赞
如您所知,您的字符串采用科学记数法,要将这些值转换为原始的 BigDecimal 或 Decimal,我们需要一种适当的方法。
public class Test {
public static void main(String[] args) {
double firstNumber = 12345678;
double secondNumber = 0.000012345678;
String firstNumberAsString = String.format ("%.0f", firstNumber);
String secondNumberAsString = String.format("%.12f",secondNumber);
System.out.println(firstNumberAsString);
System.out.println(secondNumberAsString);
}
}
输出将是:
12345678
0.000012345678
您也可以在 BigDecimal 上使用 Format 方法来实现您的目标。
DecimalFormat decimalFormat = new DecimalFormat("0.0000000000");
添加回答
举报
0/150
提交
取消