将双精度值舍入为 2 位十进制数字 [重复]

Posted

技术标签:

【中文标题】将双精度值舍入为 2 位十进制数字 [重复]【英文标题】:Round double value to 2 decimal digits [duplicate] 【发布时间】:2016-06-11 12:26:01 【问题描述】:

我一直在处理大数字(超过 20 位),因此我使用 Double 。我得到数字的形式是这样的8.653762536765E28。 我想要做的只是显示前 2 个十进制数字。我希望它像 8.65E28

我试图找到有关格式化双精度值的信息,但我无法做到。我得到的结果是 86537...12312.00 。

对于这种情况,您认为什么是好的方法?如何只管理 E(基数)前面的数字而不是整数?

【问题讨论】:

【参考方案1】:

我认为这是您想要实现的目标:

 double d = 8.653762536765E28;
 DecimalFormat df = new DecimalFormat("0.00E0");
 System.out.print(df.format(d));

【讨论】:

是的,我不知道我可以像值一样使用 E!谢谢!

以上是关于将双精度值舍入为 2 位十进制数字 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何优化 spark 函数以将双精度值舍入到小数点后 2 位?

将双精度数舍入到 x 有效数字

在Java中使用double值舍入

tf.round()到指定的精度

将双精度转换为双精度,带一位小数和一位小数?

为什么舍入浮点数1.4999999999999999产生2?