gpt4 book ai didi

java - Java 中的强制转换或变量类型错误

转载 作者:行者123 更新时间:2023-12-01 14:04:45 25 4
gpt4 key购买 nike

我尝试对涉及变量的公式进行简单的数学计算。但是,编译器中会弹出错误,指示变量类型不匹配。我尝试过转换和更改变量类型,但它们不起作用。如何在不破坏代码基本格式的情况下解决此问题。

我对 Java 没有经验,所以任何指示都会有帮助。

这是代码。这是一个货币兑换计划。错误出现在代码的第二部分,即 else 部分。

import java.util.Scanner;
public class MConvert
{
public static void main (String[] args)
{
int penny, nickel, dime, quarter, halfDollar, dollar, fiveDollar, tenDollar, twentyDollar, fiftyDollar, hundredDollar;
//can sub $ sign for dollar in variable, convention otherwise
double totalMoney;
Scanner scan = new Scanner (System.in);
System.out.println ("Are you converting to the total? If so, type true. \nIf you are converting from the total, then type false.");
boolean TotalorNot = true;
TotalorNot = scan.nextBoolean();


if (TotalorNot) {

System.out.println ("Type in the number of one-hundred dollar bills.");
hundredDollar = scan.nextInt();
System.out.println ("Type in the number of fifty dollar bills.");
fiftyDollar = scan.nextInt();
System.out.println ("Type in the number of twenty dollar bills.");
twentyDollar = scan.nextInt();
System.out.println ("Type in the number of ten dollar bills.");
tenDollar = scan.nextInt();
System.out.println ("Type in the number of five dollar bills.");
fiveDollar = scan.nextInt();
System.out.println ("Type in the number of one dollar bills or coins.");
dollar = scan.nextInt();
System.out.println ("Type in the number of half-dollar coins.");
halfDollar = scan.nextInt();
System.out.println ("Type in the number of quarter-dollar coins.");
quarter = scan.nextInt();
System.out.println ("Type in the number of dimes.");
dime = scan.nextInt();
System.out.println ("Type in the number of nickels.");
nickel = scan.nextInt();
System.out.println ("Type in the number of pennies coins.");
penny = scan.nextInt();
totalMoney = (hundredDollar * 100) + (fiftyDollar * 50) + (twentyDollar * 20) + (tenDollar * 10) + (fiveDollar * 5) + (dollar * 1) + ((double)halfDollar * 0.5) + ((double)quarter * 0.25) + ((double)dime * 0.1) + ((double)nickel * 0.05) + ((double)penny * 0.01);
System.out.println ("Here is total monetary value of the bills and coins you entered: " + totalMoney);




} else {

System.out.println ("Type in the total monetary value:");
totalMoney = scan.nextDouble();
hundredDollar = ((int)totalMoney / 100);
fiftyDollar = ((int)totalMoney - (hundredDollar * 100)) / 50;
twentyDollar = ((int)totalMoney - (fiftyDollar * 50)) / 20;
tenDollar = ((int)totalMoney - (twentyDollar * 20)) / 10;
fiveDollar = ((int)totalMoney - (tenDollar * 10)) / 5;
dollar = ((int)totalMoney - (fiveDollar * 5)) / 1;
(double) halfDollar = (totalMoney - (dollar * 1)) / 0.5;
quarter = ((int)totalMoney - (halfDollar * 0.5)) / 0.25;
dime = ((int)totalMoney - (quarter * 0.25)) / 0.1;
nickel = ((int)totalMoney - (dime * 0.1)) / 0.05;
penny = ((int)totalMoney - (nickel * 0.05)) / 0.01;

System.out.println (hundredDollar + " hundred dollar bills");
System.out.println (fiftyDollar + " fifty dollar bills");
System.out.println (twentyDollar + " twenty dollar bills");
System.out.println (tenDollar + " ten dollar bills");
System.out.println (fiveDollar + " five dollar bills");
System.out.println (dollar + " one dollar bills or coins");
System.out.println (halfDollar + " half-dollar coins");
System.out.println (quarter + " quarter-dollar coins");
System.out.println (dime + " dimes");
System.out.println (nickel + " nickel");
System.out.println (penny + " penny");

}


}

}

最佳答案

(double) halfDollar = (totalMoney - (dollar * 1)) / 0.5;

完全错误,请先删除此指令。

还可以使用以下行更改您的代码。

quarter = (int)((totalMoney - (halfDollar * 0.5)) / 0.25);
dime = (int) ((totalMoney - (quarter * 0.25)) / 0.1);
nickel =(int)( (totalMoney - (dime * 0.1)) / 0.05);
penny = (int)((totalMoney - (nickel * 0.05)) / 0.01);

您还需要改进代码的逻辑,我可以清楚地看到它不符合您想要实现的目标。

关于java - Java 中的强制转换或变量类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18997670/

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