public class SanJiao {
创新互联建站坚实的技术研发基础赢得了行业内的良好口碑,公司成立10多年来,为近1000家企业提供过网站建设、软件开发、搜索引擎优化技术、互联网大数据整合营销服务,多年的技术服务成功经验、众多的客户使我们能懂得更多,做得更好。"让您的网站跑起来"是我们一直追求的目标!
public static void main(String[] args) {
double a = Math.toRadians(90);//把数字90 转换成 90度
System.out.println(Math.sin(a));//计算sin 90度
double b = Math.toRadians(30);
System.out.println(Math.cos(b));
double c = Math.toRadians(20);
System.out.println(Math.tan(c));
}
}
运行输出
1.0
0.8660254037844387
0.36397023426620234
看了看你的程序和输出信息。实际上,不是输出“没有数字”,而是有数字,只是它是NaN。
NaN:就是Not a Number。不是个数字。表示参与数学运算的参数出了问题。
考虑到你程序中用了Math.acos(x)。值得注意的是:对应acos(x)的输入参数x,其有效范围是:
x:[-1, 1]
超过这个范围,acos()的输出就会是NaN。因此,最好在你的程序中对输入到acos(x)的参数进行范围限定:
if (cosa -1)
cosa = -1;
if (cosa 1)
cosa = 1;
if (cosb -1)
cosb = -1;
if (cosb 1)
cosb = 1;
if (cosc -1)
cosc = -1;
if (cosc 1)
cosc = 1;
你还可以增加几条println()语句,看看到底那些数值是多少,以方便你debug。
有问题继续交流,谢谢。
java.lang.Math类中的如下方法均可:
public static double acos(double a)返回角的反余弦,范围在 0.0 到 pi 之间;
public static double asin(double a)返回角的反正弦,范围在 -pi/2 到 pi/2 之间;
public static double atan(double a)返回角的反正切,范围在 -pi/2 到 pi/2 之间。
直接调用Math.acos(正玄值),然后乘以(180/pi) 转化成角度。
java的Math类提供了各种常用计算方法,sin也是其中之一,所以你可以直接用Math.sin来计算正弦值。
代码如下:
import java.math.*;
public class sin
{
public static void main(String args[])
{
System.out.println(Math.sin(Math.PI*30/180));
}
}
需要注意的是,参数传入的是PI,所以要先用30除以180获得PI值
java中弧度转化为角度,通过math类来操作,代码如下:
// format的模板
java.text.DecimalFormat df = new java.text.DecimalFormat("#0.00");
// 初始化数据
int a = 3;
int b = 4;
int c = 5;
// 计算弧度表示的角
double B = Math.acos((a*a + c*c - b*b)/(2.0*a*c));
// 用角度表示的角
B = Math.toDegrees(B);
// 格式化数据,保留两位小数
String temp = df.format(B);
System.out.println(temp);
第一问大致这样,有些问题不清楚,要问你一下,请给我留言,如果觉得可以,我就把第二问做了,第二问很简单,下面的程序编译过并执行了
public
class
Vehicle
{
int
speed;
String
forward;
String
owner;
public
static
int
id
=
1;
private
final
String
TURN_LEFT
=
"right";
private
final
String
TURN_RIGHT
=
"left";
public
Vehicle()
{
}
public
Vehicle(String
owner)
{
this.owner
=
owner;
id++;
}
public
static
int
getId()
{
return
id;
}
public
String
toString()
{
return
"Id:"+id+"
Owner:"+owner;
}
public
void
turn(int
angle)
{
System.out.println("转向角度为:"+angle);
}
public
void
turn(final
String
forward)
{
System.out.println("转向方向为:"+forward);
}
public
static
void
main(String[]
args)
{
Vehicle
v1
=
new
Vehicle("车主1");
Vehicle
v2
=
new
Vehicle("车主2");
Vehicle
v3
=
new
Vehicle("车主3");
Vehicle
v4
=
new
Vehicle("车主4");
System.out.println(v1.toString());
v1.turn(30);
v1.turn(v1.TURN_LEFT);
System.out.println(v2.toString());
v2.turn(70);
v2.turn(v4.TURN_RIGHT);
System.out.println(v3.toString());
v3.turn(20);
v3.turn(v4.TURN_LEFT);
System.out.println(v4.toString());
v4.turn(40);
v4.turn(v4.TURN_RIGHT);
}
}
第二问:
public
class
Student
{
private
int
sNumber;
private
String
sName;
private
int
sClass;
public
Student(int
number,
String
name,
int
class1)
{
super();
sNumber
=
number;
sName
=
name;
sClass
=
class1;
}
public
int
getSClass()
{
return
sClass;
}
public
String
getSName()
{
return
sName;
}
public
int
getSNumber()
{
return
sNumber;
}
public
static
void
main(String
args[])
{
Student
s
=
new
Student(20032201,"Five00",
5);
System.out.println("学生学号为:"+s.getSNumber());
System.out.println("学生姓名为:"+s.getSName());
System.out.println("学生班级为:"+s.getSClass());
}
}
编译运行通过
有问题请留言,希望对楼主有帮助~