Java 修正方法和参数错误
好吧,我刚开始这个家庭作业实验室,我有点麻烦。我一直在寻找解决方案,但它们似乎都比我所能理解的复杂得多。我在找买东西需要的钱和零钱。我只是想出了一些数字,当我运行该文件时,我得到了一个错误。有人能帮我找到如何完成这些方程来得到和值吗。此外,dollars需要是int,而不是double。所需的更改可以是两倍。任何帮助都将不胜感激Java 修正方法和参数错误,java,methods,parameters,operations,Java,Methods,Parameters,Operations,好吧,我刚开始这个家庭作业实验室,我有点麻烦。我一直在寻找解决方案,但它们似乎都比我所能理解的复杂得多。我在找买东西需要的钱和零钱。我只是想出了一些数字,当我运行该文件时,我得到了一个错误。有人能帮我找到如何完成这些方程来得到和值吗。此外,dollars需要是int,而不是double。所需的更改可以是两倍。任何帮助都将不胜感激 java:30: error: possible loss of precision findDollars = xboxOne + newGame;
java:30: error: possible loss of precision
findDollars = xboxOne + newGame;
^
required: int
found: double
1 error
public class MoneyNeeded
{
public static void main(String[] args)
{
double xboxOne, newGame, moneyNeeded;
xboxOne = 320.41;
newGame = 64.36;
moneyNeeded = findMoney(xboxOne, newGame);
System.out.println(moneyNeeded);
int dollarsNeeded;
dollarsNeeded = findDollars(xboxOne, newGame);
System.out.println(dollarsNeeded);
double changeNeeded;
changeNeeded = findChange(xboxOne, newGame);
System.out.println(changeNeeded);
}
public static double findMoney(double xboxOne, double newGame)
{
double findMoney;
findMoney = xboxOne + newGame;
return findMoney;
}
public static int findDollars(double xboxOne, double newGame)
{
int findDollars;
findDollars = xboxOne + newGame;
return findDollars;
}
public static double findChange(double findDollars, double findMoney)
{
double findChange;
findChange = findMoney % findDollars;
return findChange;
}
}
不能将两个double求和并将结果放入int中,因为int不能包含小数部分,所以。。好不精确 如果您不介意去掉小数部分,您可以明确地将其删除:
findDollars = (int)(xboxOne + newGame); // Simply truncate the decimal part away
但通常不是一个好主意,因为0.2+0.2将返回0 我认为您有问题,因为您正在使用数据类型作为方法的参数,而这些数据类型应该用于方法中的参数。不过我不确定,所以请务必再次检查此项。这样您就可以执行以下操作:
findDollars = xboxOne.intValue() + newGame.intValue();
或
我得到的一个错误是相当模糊的。你能把你的错误发出去吗?我发了。。顶部的第一部分。让你试试findDollars=xboxOne.intValue+newGame.intValue?收到两个的错误。在intValueNevermind之前,它现在起作用了。我犯了一个简单的错误。是的,这就是我要做的。我想找到美元的整数。没有变化。比如说2.42美元。我需要2美元。好的,这确实解决了错误,我收到了作为输出前两个答案是正确的,但最后一个应该是0.77 384.7700000000004 384 64.36这是我的输出。我需要简单地减去前两个方法得到0.77,但是我得到的是-256。我不知道为什么这是输出----------配置:-------------384.7700000000004 384-256.05进程已完成。为什么在one方法中使用Integer?你想从findDollars的输出中减去findChange和findMoney的输出吗?对。为什么不使用-而不是%?&我认为您在change函数中传递了错误的参数,您必须将该函数中的前两个函数输出作为参数传递。
findDollars = (int)(xboxOne + newGame);