我在COMP 110课程中介绍Java。这个特定的程序与课程无关,但有助于我自己对Java的理解。
我相信我已导入该工具以允许程序使用" java.lang.Math来计算基本数学运算;"
我理解*是乘法,/是除法,+是加法, - 是减法,%是找到余数。
程序的最后一行给出了错误消息:
squared.java:14: operator * cannot be applied to java.lang.String,java.lang.String
我不知道为什么,因为我导入了Math语言,这使我能够在输入" value * value"
时使用*来乘以值变量import java.util.Scanner;
import java.lang.Math;
public class squared {
public static void main(String[] args) {
Scanner number = new Scanner(System.in);
System.out.println("What number do you want to find the square of?");
String value = number.nextLine();
System.out.println("The square of the number" + value + "is" + value * value);
}
}
答案 0 :(得分:1)
是的,您必须先将其转换为Integer,Double,Float等,以便对其进行乘法运算。所以就这样做
int v = Integer.parseInt(value.trim());
然后
System.out.println("The square of the number"+v+"is"+ (v * v));
同样使用运算符与数学库无关。数学库的使用方式如下:
double d = Double.parseDouble(value.trim());
Math.pow(d,2.0); //which does the same thing above
答案 1 :(得分:0)
这个计划有两种方法 -
1)将输入读作String
,然后将其转换为int
或
2)将输入读作int
(或double
?)本身。
以下代码显示了如何将输入读取为int
并执行操作。
请注意sysout语句中的代码更改(value*value)
。当您将任何值连接到字符串时,它将被视为字符串,因此您将收到错误。将其放在括号中,以便在连接之前执行实际的value*value
操作。
public class squared {
public static void main(String[] args){
Scanner number = new Scanner(System.in);
System.out.println("What number do you want to find the square of?");
int value = number.nextInt();
System.out.println("The square of the number"+value+"is"+ (value * value));
}
}
谈到Math.pow()
,它在这里没有任何不同的用途。使用它与你在这里完成的方式相同。
答案 2 :(得分:0)
首先,您无需导入java.lang.Math
。所有java.lang
库已经存在。此外,您无需使用Math库进行操作。您可以将它用于Math.sin()
之类的内容来查找角度的正弦值,或Math.pow()
来获取一个数字与另一个数字的幂。如果您需要java.lang.Math
的完整使用列表,请点击以下链接:http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html
您可能希望将输入存储为double,因此您可能希望使用number.nextLine()
而不是number.nextDouble()
,并将其存储为double,如下所示。
double value = number.nextDouble();
您将值存储为字符串,因此计算机将输入作为引号读取,如“cat”,而不是数字。它不起作用,因为你试图做的就像说
"cat" * "dog."
课堂上好运!