如何正确使用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语言,它

我在一个COMP110课程中学习Java。这个特定的程序与该类无关,但有助于我自己对Java的理解

我相信我已经导入了这个工具,允许程序使用“java.lang.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();