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