public class Exercise05_08 {
public static void main(String[] args) {
System.out.println("Celsius\t\tFahrenheit\t|\tFahrenheit\tCelsius");
System.out.println("---------------------------------------------");
double celsius = 40; double farenheit = 120;
for (int i = 1; i <= 10; celsius--, farenheit -= 10, i++) {
System.out.println(celsius + "\t\t" + celsiusToFahrenheit(celsius) + "\t|\t" + farenheit + "\t\t" + fahrenheitToCelsius(farenheit));
}
}
public static double celsiusToFahrenheit(double celsius) {
return (9.0 / 5.0) * celsius + 32;
}
public static double fahrenheitToCelsius(double fahrenheit) {
return (5.0 / 9) * (fahrenheit - 32);
}
}
某些值打印出几个小数位,我希望所有值只打印2位小数。
答案 0 :(得分:3)
使用DecimalFormat
可以有两位小数:
DecimalFormat myFormatter = new DecimalFormat("#.00");
String output = myFormatter.format(value);
您可以找到有关自定义格式和模式构造(以及如何使用它们)的其他信息here。
答案 1 :(得分:0)
您应该使用format()方法:
System.out.format("%.2f", celsius);
会将值格式化为2位小数。
由于您使用的是println(),因此您可能希望在格式字符串的末尾包含“\ n”以插入换行符。
答案 2 :(得分:0)
进行以下更改,以便在点后不打印2位数字:
NumberFormat formatter = new DecimalFormat("%.2f");
String s = formatter.format(celsiusToFahrenheit(celsius));
并打印:
System.out.println(celsius + "\t\t" + s + "\t|\t" + farenheit + "\t\t" + fahrenheitToCelsius(farenheit));
答案 3 :(得分:-1)
轻松修复将结果乘以100,将它们转换为int,然后将它们再次除以100再加倍。
它可能不是最优雅的解决方案,但它可以工作..
编辑:显然有一个更优雅的解决方案,所以忘了它。