首页 > 解决方案 > 格式化双精度时正确的 printf 语法是什么?

问题描述

我被困在printf声明中。谁能告诉,printf格式化 a 时正确的语法是double什么?

public static void main(String[] args){
    System.out.printf("%-15s %-5s" + " | " + "%5s %15s \n", "Celcius", "Fahrenheit", "Fahrenheit", "Celcius");
    for(double celcius = 40, fahrenheit = 120; celcius >= 31 && fahrenheit >= 30; celcius--, fahrenheit--){
    System.out.printf("%.1-15f%.1-5f|%.115f%.115f\n", celcius, celciusToFahrenheit(celcius), fahrenheit, fahrenheitToCelcius(fahrenheit));
    }
}

public static double celciusToFahrenheit(double celcius){
    double fahrenheit = (9.0 / 5) * (celcius + 32); 
    return fahrenheit;        
}

public static double fahrenheitToCelcius(double fahrenheit){
    double celcius = (5.0 / 9) * (fahrenheit - 32); 
    return celcius;
} 

标签: javaformattingprintf

解决方案


这些是System.out.printf()格式规则:

%[flags][width][.precision]conversion-character

printf() 您可以在此处此处找到大量示例和说明


推荐阅读