当前位置: 首页 > 知识库问答 >
问题:

Java:double:如何始终显示两个十进制数字

刁星渊
2023-03-14

我在我的项目中使用双倍值,我想始终显示前两位十进制数字,即使它们是零。我使用此函数进行四舍五入,如果我打印的值是3.47233322,它(正确地)打印3.47。但是当我打印时,例如,值2它打印2.0。

public static double round(double d) {
    BigDecimal bd = new BigDecimal(d);
    bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
    return bd.doubleValue();
}

我想印2.00!

有没有一种不用字符串就可以做到这一点的方法?

编辑:从你的答案(我感谢你)我知道我不清楚我在搜索什么(对此我很抱歉):我知道如何使用你提出的解决方案在数字后打印两位数。。。我想要的是直接将两位数存储在双精度值中!所以当我做这样的系统时。出来println(““d”)(其中d是值为2的double),它打印2.00。

我开始认为没有办法做到这一点...对吗?无论如何,再次感谢您的回答,如果您知道解决方案,请告诉我!

共有3个答案

蒋胡非
2023-03-14

您可以简单地这样做:

double d = yourDoubleValue;  
String formattedData = String.format("%.02f", d);
郁明诚
2023-03-14

使用java。文本数字格式:

NumberFormat nf= NumberFormat.getInstance();
nf.setMaximumFractionDigits(2);
nf.setMinimumFractionDigits(2);
nf.setRoundingMode(RoundingMode.HALF_UP);

System.out.print(nf.format(decimalNumber));
慕宏博
2023-03-14

您可以使用这样的东西:

 double d = 1.234567;
 DecimalFormat df = new DecimalFormat("#.00");
 System.out.print(df.format(d));

编辑以实际回答问题,因为我需要真正的答案,这出现在谷歌上,有人将其标记为答案,尽管当小数为0时这行不通。

 类似资料:
  • 问题内容: 我希望所有值都显示为十六进制 问题答案: 那他呢 该表达式是所谓的 列表理解 。基本上,这是编写简单循环并根据结果创建列表的非常紧凑的方式。 的内置函数采用一个字符串,并把它转换成一个整数其相应的Unicode代码点(在ASCII字符集这是与它们在ASCII表值中的字符)这是。 对于8bit字符串或unicode对象,它的对应内容与此相反。 然后,内建函数将整数简单地转换为十六进制表示

  • 问题内容: 以下代码使用SerialPort模块来侦听来自蓝牙连接的数据。 我希望在控制台中看到十六进制格式的数据流。但是控制台仅显示了一些奇怪的符号。我想知道如何在控制台中解码和显示数据。 问题答案: 此代码将数据缓冲区显示为十六进制字符串:

  • 问题内容: 我有一个ng模型的浮点值,我希望始终在其小数点后2位显示: 当“ myNumb”为小数时,此方法适用于大多数情况。但是,如果“ myNumb”的小数位数少于2个(3.2)或整数(30), 则不会强制显示小数点后2位。如何在字段中强制显示小数点后2位 问题答案: AngularJS-输入数字两位小数可以帮助…过滤: 设置正则表达式以使用ng-pattern验证输入。在这里,我只接受最多2

  • 问题内容: 我正在使用Firebird数据库,正在尝试以下sql,但每次它返回0而不是0.61538(等等)。 现在,当我删除/ 26时,totalcount会返回16。但是,当我将26除后,结果显示为0,但应显示为完整的十进制值0.615384 …有人知道为什么它不返回完整值吗?我什至尝试将其包装在CAST((count(myfield)/ 26)中为double)totalcount,但它仍返

  • 我需要用C编写一个程序,该程序执行以下操作: 编写一个程序,这样当用户输入一个浮点数时,它将该数字四舍五入到小数点后3位。显示结果时,显示小数点后5位,这意味着小数点后第4位和第5位数字都将为0。 如何将其四舍五入到小数点后3位,然后显示两个零?我不允许使用任何类型的数学库函数。

  • 我似乎无法找到为所有文件启用行号的设置,但我必须始终右键单击并根据每个文件启用此设置。 这必须有一个全局设置,对吧?