双逗号从0.0到0.000

时间:2017-11-04 12:51:51

标签: java

如何将我的答案从0.0转换为0.000? Rightnow它jst显示答案175.0等但我希望它显示175.000

示例:

175.0 = 175.000
10.0 = 10.000
5.0 = 5.000
etc.

在我的例子中,Code用于计算时钟指针之间的角度:

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        int hours = 0;
        int minutes = 0;
        Scanner dis=new Scanner(System.in);
    String line;
    String[] lineVector;
    line = dis.nextLine();
    lineVector = line.split(":");
    hours=Integer.parseInt(lineVector[0]);
    minutes=Integer.parseInt(lineVector[1]);
        if (hours < 0 || minutes < 0 || hours > 24 || minutes > 60) {
            System.out.println("Please enter correct input.");
        } else {
            if (hours == 24)
                hours = 0;
            if ( minutes == 60)
                minutes = 0;

            double hourHandAngle = 0.5 * (hours * 60 + minutes);
            int minuteHandAngle = 6 * minutes;

            double angle = Math.abs(hourHandAngle - minuteHandAngle);
            if (angle > 360){
              angle = angle - 360;
              System.out.println(angle);
              System.exit(0);
            }
            if (angle > 180 || angle <= 360){
              angle = 360 - angle;
              System.out.println(angle);
              System.exit(0);
            }
            System.out.println(angle);
        }
    }
}

它需要显示0.000而不是0.0的想法。

解决方法:System.out.printf(“%。3f”,angle);

3 个答案:

答案 0 :(得分:1)

您可以使用字符串格式化程序指定小数位。

  

%。0f是浮点数的格式字符串,带有0位小数。

 String.format( "%.3f", value )

答案 1 :(得分:0)

使用MessageFormat,您可以根据需要格式化数字输出

import java.text.MessageFormat;


public class Test {

    public static void main(String[] args) {

        Object[] params = {123, 1222234.567 };

        String msg = MessageFormat.format("{0,number,percent} and {1,number,,###.###}", params);

        System.out.println(msg);

    }

}

答案 2 :(得分:0)

尝试使用DecimalFormat。

以下是一个例子:

DecimalFormat format = new DecimalFormat("#.000"); 
System.out.println(format.format(5.0));

有关详细信息,请查看this回答的评论。