好的,所以我刚开始做这个作业实验室而且我遇到了一些麻烦。我搜索过任何解决方案,但它们看起来都比我能理解的要复杂得多。我正在寻找所需的美元和购买东西所需的变化。我只想出了一些数字,当我运行文件时,我得到一个错误。任何人都可以帮我找到如何完成方程式以获得总和值。另外,DollarNeeded需要是int而不是double。 changeNeeded可以加倍。任何帮助将不胜感激。
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;
}
}
答案 0 :(得分:0)
你不能将两个双精度相加并将结果放在一个int中,因为int不能包含小数部分,所以你会......好......松散的精度。
如果你没有丢失小数部分,你可以明确地删除它:
findDollars = (int)(xboxOne + newGame); // Simply truncate the decimal part away
但通常不是一个好主意,因为0.2 + 0.2会返回0.
答案 1 :(得分:0)
我认为您遇到问题是因为您使用数据类型作为方法的参数,而它们应该用于方法中的参数。我'我不确定,所以一定要仔细检查一下。
答案 2 :(得分:0)
所以你可以这样做:
findDollars = xboxOne.intValue() + newGame.intValue();
或
findDollars = (int)(xboxOne + newGame);