在java中将双精度值舍入为两位有效数字[重复]

Posted

技术标签:

【中文标题】在java中将双精度值舍入为两位有效数字[重复]【英文标题】:Rounding double value into two significant digits in java [duplicate] 【发布时间】:2013-04-08 07:54:53 【问题描述】:

我想要一个函数,将双精度值四舍五入为两位有效数字 现在我正在使用以下功能

private static DecimalFormatSymbols DFS;
private static DecimalFormat myFormatter;
public static String DoubleToFormatedString(double value) 
    DFS = new DecimalFormatSymbols();
    DFS.setDecimalSeparator('.');
    myFormatter = new DecimalFormat("############.##");
    myFormatter.setDecimalFormatSymbols(DFS);
    return myFormatter.format(value);

但是有了这个函数,例如:我得到一个四舍五入的数字 2.6,我需要得到这个像 2.60。 '0' 应该出现在 1 个有效数字的右侧。应该做出什么改变?或任何其他方式请帮助我

【问题讨论】:

来自文档 (docs.oracle.com/javase/1.4.2/docs/api/java/text/…) '0':数字,'#':数字,零表示不存在 【参考方案1】:

如下替换您的格式化程序

myFormatter = new DecimalFormat("#.00");

更多细节可以参考这个SO问题:Format double to 2 decimal places with leading 0s

【讨论】:

【参考方案2】:

试试

new DecimalFormat("#.00");

【讨论】:

【参考方案3】:

是的,只需使用

DecimalFormat myFormatter = new DecimalFormat("#.00");

而不是

 DecimalFormat myFormatter = new DecimalFormat("############.##");

【讨论】:

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

在Java中使用double值舍入

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

R:将 p 值舍入到 xtable 中的两位有效数字,并将 ReporteRs 导出到 Latex/Office/LibreOffice

在java中将浮点数舍入到7位有效数字[重复]

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

在Java中将双精度格式设置为两位小数会产生逗号而不是点[重复]