如何对java中由Scanner生成的值执行算术运算?
问题描述:
我真的想知道如何添加,乘或除使用扫描仪类,因为我每次运行它总是给我的代码0如何对java中由Scanner生成的值执行算术运算?
public static void main(String[] args) {
int NumPerHamper;
double ItemCost;
int NumHampersMade;
int NumItemsLeftOver;
int ValuePerHamper;
int NumAvalable;
double ValueAllotedHampers;
double NumAllotedPerHamper;
double ValueAllHampers;
double ValueItemsLeftOver;
int ItemLeftOver;
Scanner sc = new Scanner(System.in);
System.out.println("Enter the number of items avalible");
ValuePerHamper = sc.nextInt();
System.out.println("Enter the number of avaliable mac and cheese");
NumAvalable = sc.nextInt();
NumHampersMade = NumAvalable/ValuePerHamper;
// System.out.println("Items left over");
//NumPerHamper = sc.nextInt();
// System.out.println("");
System.out.println(NumHampersMade);
}
}
答
这是因为整数除法会总是舍入,因为int不能有小数。尝试使用双。
double ValuePerHamper, NumAvalable, NumHampersMade;
Scanner sc = new Scanner(System.in);
System.out.println("Enter the number of items avalible");
ValuePerHamper = sc.nextDouble();
System.out.println("Enter the number of avaliable mac and cheese");
NumAvalable = sc.nextDouble();
NumHampersMade = NumAvalable/ValuePerHamper;
System.out.println(NumHampersMade);
答
将除数转换为更大的数据类型,例如int a 7,b = 9; double ave = a /(double)b。或者v
Java的命名约定是总是使用'camelCase'作为变量,'TitleCase'则使用类名称。我还建议不要将所有的变量声明为这样,因为它们使得更难以看到所有的数据类型,并且使得初始化变量时容易出错。 – 4castle
*“您如何对扫描仪产生的值执行算术运算?”*您对来自任何其他来源的值执行算术运算的方式相同。你使用算术运算符('+','-','*','/','%')编写代码。 – Andreas