在 Java 中将数字转换为 2 位小数

2022-09-01 10:05:18

我想在运行时将数字转换为2个小数位(始终显示两个小数位)。我尝试了一些代码,但它只有,如下所示

 20.03034 >> 20.03
 20.3 >> 20.3  ( my code only rounds not converts )

但是,我希望它这样做:

 20.03034 >> 20.03
 20.3 >> 20.30 (convert it to two decimal places)

我的代码如下:

angle = a variable
angle_screen =  a variable

DecimalFormat df = new DecimalFormat("#.##");
angle = Double.valueOf(df.format(angle));
angle_screen.setText(String.valueOf(angle) + tmp);

关于如何做到这一点的任何帮助都会很棒,谢谢。


答案 1

试试这个new DecimalFormat("#.00");

更新

    double angle = 20.3034;

    DecimalFormat df = new DecimalFormat("#.00");
    String angleFormated = df.format(angle);
    System.out.println(angleFormated); //output 20.30

您的代码未正确使用小数格式

模式中的 0 表示必填数字,# 表示可选数字。

更新2:检查波纹管答案

如果你想格式化,你应该使用,否则它将是0.26770.27new DecimalFormat("0.00");.27


答案 2
DecimalFormat df=new DecimalFormat("0.00");

使用此代码可获取确切的两个小数点。即使值为 0.0,它也将给出 u 0.00 作为输出。

相反,如果您使用:

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

它不会将 0.2659 转换为 0.27。你会得到一个像.27这样的答案。