字符串到 BigDecimal 值

有人可以帮我得到确切的值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 中的确切值吗?


蓝山帝景
浏览 149回答 2
2回答

侃侃尔雅

如您所知,您的字符串采用科学记数法,要将这些值转换为原始的 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);}}输出将是:123456780.000012345678您也可以在 BigDecimal 上使用 Format 方法来实现您的目标。DecimalFormat decimalFormat = new DecimalFormat("0.0000000000");
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java