Java 转换为正确的十进制表示形式

Java 转换为正确的十进制表示形式,java,bigdecimal,Java,Bigdecimal,我有一个字符串作为数据馈送返回,我需要将其转换为正确的BigDecimal格式-该字符串的格式为 1.6945E3 需要转换为1694.50,但只转换为1694.5,导致信息丢失。下面是我正在使用的代码 我只是传递字符串并对BigDecimal的一个实例执行一个新的操作 关于如何获得正确的数据表示的任何想法 谢谢 ’视情况而定,试试这个 BigDecimal bd = new BigDecimal("1694.50"); System.out.println(bd); 输出 1

我有一个字符串作为数据馈送返回,我需要将其转换为正确的BigDecimal格式-该字符串的格式为

1.6945E3


需要转换为1694.50,但只转换为1694.5,导致信息丢失。下面是我正在使用的代码

我只是传递字符串并对BigDecimal的一个实例执行一个新的操作

关于如何获得正确的数据表示的任何想法

谢谢 ’

视情况而定,试试这个

    BigDecimal bd = new BigDecimal("1694.50");
    System.out.println(bd);
输出

1694.50
但是这个

    BigDecimal bd = new BigDecimal(1694.50);
    System.out.println(bd);
产生

1694.5
还有这个

    BigDecimal bd = new BigDecimal("1694.50");
    System.out.printf("%.3f", bd);
印刷品

1694.500
看情况,试试这个

    BigDecimal bd = new BigDecimal("1694.50");
    System.out.println(bd);
输出

1694.50
但是这个

    BigDecimal bd = new BigDecimal(1694.50);
    System.out.println(bd);
产生

1694.5
还有这个

    BigDecimal bd = new BigDecimal("1694.50");
    System.out.printf("%.3f", bd);
印刷品

1694.500

“导致信息丢失”=>什么信息丢失?为什么你期望的是1694.50而不是1694.500?等等,1694.5等于1694.50;只是一个不同的格式化程序“导致信息丢失”=>什么信息丢失?为什么你期望的是1694.50而不是1694.500?等等,1694.5等于1694.50;只是一个不同的格式化程序