为了账号安全,请及时绑定邮箱和手机立即绑定

字符串到 BigDecimal 值

字符串到 BigDecimal 值

蓝山帝景 2021-10-27 17:03:23
有人可以帮我得到确切的值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");


查看完整回答
反对 回复 2021-10-27
  • 2 回答
  • 0 关注
  • 148 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信