【发布时间】:2020-08-18 14:12:51
【问题描述】:
所以,我用 static 做了一个 for 循环并且工作正常。但后来我想对这个循环的值求和以获得总值。但每次我尝试打印它时,我得到的值为 0。有什么想法吗?请原谅原始编码。
我还有一个 Console 类,我没有发布它,但它来自 Scanner 类,用于“userInput”。
主类:
public class Main {
private static Console Consola;
public static void main(String[] args) {
ItemPower oco = new ItemPower();
CalculateThings oco2 = new CalculateThings();
System.out.println(Math.ceil(oco.preçoUnitarioVIII_II));
double unitariaT5 = Consola.userInput("Qual o Preço unitario da T5?");
double unitariaT4 = Consola.userInput("Qual o Preço unitario da T4?");
double unitariaCedarLog = Consola.userInput("Qual o Preço unitario da chedar Log?");
double desejadaT5 = Consola.userInput("Qual o Preço desejada de T5?");
System.out.println("Investimento em tier 5 Plank é de: " + oco2.tier5Plank(unitariaT5, desejadaT5));
System.out.println("Investimento em tier 4 Plank é de: " + oco2.tier4Plank(desejadaT5, unitariaT4));
System.out.println("Investimento em Chedar logs é de: " + oco2.chedarLog(desejadaT5, unitariaCedarLog));
System.out.println("value of totaT5 is " +oco2.totalT5);
CalculateThings.loopT5();
}
}
类计算事物:
public class CalculateThings {
double unitariaT5;
double unitariaT4;
double unitariaCedarLog;
double desejadaT5;
double totalT5 = 0;
double totalT4 = 0;
double totalCH = 0;
public double tier5Plank(double desejadaT5, double unitariaT5){
return desejadaT5 * unitariaT5;
}
public double tier4Plank(double desejadaT5, double unitariaT4){
return desejadaT5 * unitariaT4;
}
public double chedarLog(double desejadaT5, double unitariaCedarLog){
return desejadaT5 * unitariaCedarLog * 3;
}
public double loopT5(double desejadaT5) {
for (int i = (int) desejadaT5; i >= 1; i = (int) (i * 0.367)) {
totalT5 += i;
}
return totalT5;
}
}
再次感谢您的帮助。
【问题讨论】:
-
这不会编译,因为当您调用
loopT5()方法时,您不会传递任何值。除此之外,在这种情况下,循环中的i不应该是 int 。从 double 转换为 int 时会丢失精度。 -
另外,您似乎在计算之前打印了结果?
-
@Amongalen 那我应该在里面放什么值?