代码应该输出 华氏度和摄氏度的表 :
public static void main(String[] args) {
System.out.println("Fahrenheit\tCelsius");
System.out.println("=======================");
for(int temp = -45; temp <= 120; temp += 5) //for(int i = 0; i <= 100; i+= 10)
{
System.out.printf("%5d |", temp);
double sum = (temp + (9.0/5.0)) * 32;
System.out.printf("%5d", (int) sum );
System.out.println();
}
}
答案 0 :(得分:1)
您需要进行两项更改:
int
(因为它会使值失去精确度)printf
中(因为你需要打印十进制数而不是int)下面应该有效:
System.out.printf("%10.1f", sum );
答案 1 :(得分:1)
如何在java中创建华氏温度到摄氏温度的转换
恕我直言最重要的一步是在考虑编码之前先了解问题。
维基百科是一个很好的开始并且正在搜索它给我们的摄氏度:
[°C] =([°F] - 32)×5/9
在Java中可能是这样的:
celsius = (fahrenheit -32.0) * 5.0 / 9.0;
我认为最好在一个单独的方法中这样做,以便更容易测试它:
public static double fahrenheitToCelsius(double fahrenheit) {
double celsius = (fahrenheit - 32.0) * 5.0 / 9.0;
return celsius;
}
注1:在继续之前测试此方法是值得的 - 两个显着的温度是:
所以快点做一些事情&amp;脏得像:
System.out.println("32 == " + fahrenheitToCelsius(32));
System.out.println("212 == " + fahrenheitToCelsius(212));
更好,在这个简单的情况下可能有点重,就是使用像JUnit这样的框架。
注2:为了创建表格,请按照问题中的帖子进行操作,但只有一个printf
可以将格式放在一个地方(显然是在调用上述方法后):
System.out.printf("%5.0f | %5.1f\n", fahrenheit, celsius);
注3:谨慎使用5/9
- 在Java中被解释为整数除法并且会导致零!
(上面的代码只是一个示例,未经过测试或调试
答案 2 :(得分:0)
更好的方法是使用小数格式类
import java.text.DecimalFormat;
int numberToPrint = 10.234;
DecimalFormat threePlaces = new DecimalFormat("##.#"); //formats to 1 decimal place
System.out.println(threePlaces.format(numberToPrint));
应打印:
10.2
答案 3 :(得分:0)
如果要使输出结果看起来像表,则必须使用java.util.Formatter。
我重写了你的片段,一点点:
public static void main(String[] args) {
Formatter formatter = new Formatter(System.out);
formatter.format("%-20s\n", "---------------------------");
formatter.format("%-10s %12s\n", "| Fahrenheit |", "Celsius |");
formatter.format("%-20s\n", "---------------------------");
for (int farValue = -45; farValue <= 80; farValue += 5) {
double celValue = (farValue + (9.0 / 5.0)) * 32;
formatter.format("| %10d | %10.0f |\n", farValue, celValue);
}
formatter.format("%-20s\n", "---------------------------");
}
输出代码段看起来与 表格 完全相同:
---------------------------
| Fahrenheit | Celsius |
---------------------------
| -45 | -1382 |
| -40 | -1222 |
...
| -30 | -902 |
---------------------------