gpt4 book ai didi

java - 基本的java温度转换器

转载 作者:行者123 更新时间:2023-12-04 04:54:07 25 4
gpt4 key购买 nike

所以我正在尝试编写一个程序来将 C 度转换为 F 度,反之亦然。每次我运行程序时都会遇到一些我无法轻易解释的错误。例如,它将 100 C 转换为 132 F。它将 212 F 转换为 0 C。我的转换公式是正确的。谁能给我一些线索?我尝试在 main 之外的类中声明浮点数,但没有帮助。

import java.util.Scanner;
public class TempConverter{
public static void main(String [] args)
{
float f, c;
f = c = 0;
int a;
Scanner scan = new Scanner (System.in);
System.out.println("Press 1 for C->F or 2 for F->C");
a = scan.nextInt();
if (a == 1)
convertCtoFAndPrint();
else
convertFtoCAndPrint();
}

public static void convertFtoCAndPrint()
{
f = c = 0;
Scanner scan = new Scanner (System.in);
System.out.println("Please enter degrees F");
f = scan.nextFloat();
c = (5/9)*(f-32);
System.out.println(f + " degrees F is " + c + " degrees C.");
}

public static void convertCtoFAndPrint()
{
Scanner scan = new Scanner (System.in);
System.out.println("Please enter degrees C");
c = scan.nextFloat();
f = c*(9/5)+32;
System.out.println(c + " degrees C is " + f + " degrees F.");
}

}

最佳答案

你写:

c = (5/9)*(f-32);

但是 cfloat .

问题是 5 / 9是整数除法,其结果始终为 0。

同样:
f = c*(9/5)+32;

这里 9 / 5将始终为 1。并且 c 将被强制转换为 int .

你需要写 5.0 , 9.0等。

关于java - 基本的java温度转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17015871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com