如何正确使用java.lang.Math?
我在一个COMP110课程中学习Java。这个特定的程序与该类无关,但有助于我自己对Java的理解 我相信我已经导入了这个工具,允许程序使用“java.lang.math;”计算基本的数学运算 我知道*是乘法,/是除法,+是加法,-是减法,%找到余数 程序的最后一行给出了错误消息:如何正确使用java.lang.Math?,java,math,multiplication,Java,Math,Multiplication,我在一个COMP110课程中学习Java。这个特定的程序与该类无关,但有助于我自己对Java的理解 我相信我已经导入了这个工具,允许程序使用“java.lang.math;”计算基本的数学运算 我知道*是乘法,/是除法,+是加法,-是减法,%找到余数 程序的最后一行给出了错误消息: squared.java:14: operator * cannot be applied to java.lang.String,java.lang.String 我不知道为什么,因为我已经导入了Math语言,它
squared.java:14: operator * cannot be applied to java.lang.String,java.lang.String
我不知道为什么,因为我已经导入了Math语言,它应该可以让我在输入“value*value”时使用*乘以value变量
是的,您必须首先将其转换为整数、双精度、浮点等,以便对此类对象进行乘法。那就这么做吧
int v = Integer.parseInt(value.trim());
然后
此外,使用运算符与数学库无关。数学库的使用方式如下:
double d = Double.parseDouble(value.trim());
Math.pow(d,2.0); //which does the same thing above
这项计划有两种方法- 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()
,它在这里没有任何不同的用途。使用它的方法与您在这里使用的方法相同。首先,您不需要导入java.lang.Math
。所有的java.lang
库都已经存在了。此外,您不需要使用数学库进行操作。你可以用它来做一些事情,比如Math.sin()
求一个角度的正弦,或者Math.pow()
求一个数对另一个数的幂。如果您想要java.lang.Math
的完整使用列表,请访问以下链接:
您可能希望将输入存储在一个double中,因此您可能希望使用number.nextLine()
,而不是使用number.nextDouble()
,并将其存储在一个double中,如下所示
double value = number.nextDouble();
您将值存储为字符串,因此计算机将输入读取为引号,如“cat”,而不是数字。它不起作用,因为你想做的和说的差不多
“猫”*“狗。”
祝你在班上好运 因为
值
是一个字符串
,而不是数字类型。你所做的的结果是什么?将字符串相乘并不容易:(.您不需要导入java.lang.Math
来完成此操作。但是,您确实需要数字类型来进行数学运算。@Tom lol.很好的解释,+1:)java.lang
中的所有内容都会自动导入。如果您想从Math
中获取一些内容,您可以说Math.sin(x)
(例如)(您还可以使用“静态导入”)。但这不是本例中的问题。或者他可以用不同的方式定义value
:int-value=number.nextInt()代码>@Tom是的,这是另一种方式it@Rika您要进行修剪,否则会出现数字格式异常,因为末尾有新行。:)程序现在运行。根据我的理解,在Java中使用“字符串”进行数学运算是行不通的。Int、float或double都可以。每当我想做一道数学题时,我都会用“double”,因为它允许小数,int不允许。如果没有人输入一个大于两倍的数字,这可以吗?答案是错误的,行分隔符应该从哪里来nextLine()
将其排除在外。()
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));
}
}
double value = number.nextDouble();