gpt4 book ai didi

java - 答案永远是0

转载 作者:行者123 更新时间:2023-12-01 06:28:43 26 4
gpt4 key购买 nike

import java.io.*;

class empl
{

int p, n, r, i;

void accept()
{
try
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter Principal amount");
int p = Integer.parseInt(br.readLine());
System.out.println("Enter no of years");
int n = Integer.parseInt(br.readLine());
System.out.println("Enter rate");
int r = Integer.parseInt(br.readLine());
} catch(Exception e)
{
System.out.println("" + e);
}
}

int calculate()
{
i = (p * n * r) / 100;
return (i);
}
}

class bank
{
public static void main(String args[])
{
empl e = new empl();
e.accept();
int a = e.calculate();
System.out.println("i=" + a);
}
}

我是java初学者。上面的程序总是给我结果为0。我也尝试了很多不同的输入值,但结果保持不变。我确信公式没有问题。请帮助我提前致谢。

最佳答案

您的 accept 方法为 pnr 声明新的本地变量> - 它不会为实例变量赋值,该变量的值仍为 0。您应该只为实例变量赋值,而不是声明局部变量。例如,这一行:

int p = Integer.parseInt(br.readLine());

应该是:

p = Integer.parseInt(br.readLine());

此外,正如其他人指出的那样,算术完全是在整数数学中执行的。如果您确实想要一个整数结果(例如,如果您不介意在 pn 时得到 0 作为结果,那并不重要和 r 都是 10) - 但如果您希望能够获得非整数结果,您可能需要类似以下内容:

double calculate() {
return (p * n * r) / 100.0;
}

...或者如果确切的数字值对您很重要,则可以使用 BigDecimal 代替。 (double 适用于自然量,例如高度和体重;BigDecimal 适用于金融计算。搜索有关 double 的问题BigDecimal 有关于此的更多信息。)

关于java - 答案永远是0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19495895/

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