Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 修正方法和参数错误_Java_Methods_Parameters_Operations - Fatal编程技术网

Java 修正方法和参数错误

Java 修正方法和参数错误,java,methods,parameters,operations,Java,Methods,Parameters,Operations,好吧,我刚开始这个家庭作业实验室,我有点麻烦。我一直在寻找解决方案,但它们似乎都比我所能理解的复杂得多。我在找买东西需要的钱和零钱。我只是想出了一些数字,当我运行该文件时,我得到了一个错误。有人能帮我找到如何完成这些方程来得到和值吗。此外,dollars需要是int,而不是double。所需的更改可以是两倍。任何帮助都将不胜感激 java:30: error: possible loss of precision findDollars = xboxOne + newGame;

好吧,我刚开始这个家庭作业实验室,我有点麻烦。我一直在寻找解决方案,但它们似乎都比我所能理解的复杂得多。我在找买东西需要的钱和零钱。我只是想出了一些数字,当我运行该文件时,我得到了一个错误。有人能帮我找到如何完成这些方程来得到和值吗。此外,dollars需要是int,而不是double。所需的更改可以是两倍。任何帮助都将不胜感激

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);