Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我得到java.lang.arithmetricException错误_Java_Math - Fatal编程技术网

我得到java.lang.arithmetricException错误

我得到java.lang.arithmetricException错误,java,math,Java,Math,这是main方法的内部。试图计算double x数学公式,这给了我运行代码的问题。有人能帮忙吗 final int P = Integer.parseInt(args[0]); final int Q = Integer.parseInt(args[1]); final double H = Double.parseDouble(args[2]); final int N = Spiro.numberOfRevolutions(P, Q); IPoint2D point = new IPoin

这是main方法的内部。试图计算double x数学公式,这给了我运行代码的问题。有人能帮忙吗

final int P = Integer.parseInt(args[0]);
final int Q = Integer.parseInt(args[1]);
final double H = Double.parseDouble(args[2]);
final int N = Spiro.numberOfRevolutions(P, Q);

IPoint2D point = new IPoint2D(0., 0.);
SimpleDrawing.drawPoint(point);

for (int i = 1; i <= 360*N; i++) {
    final int r = P/Q;
    double radianI = Math.toRadians(i);
    double x = ((1 - r) * Math.cos(radianI)) + (H * Math.cos(((1- r) / r) *  radianI));
    double y = ((1 - r) * Math.sin(radianI)) + (H * Math.sin(((1- r) / r) * radianI));

    IPoint2D point1 = new IPoint2D(x,y);
    SimpleDrawing.drawPoint(point1);
}
final int P=Integer.parseInt(args[0]);
final int Q=Integer.parseInt(args[1]);
final double H=double.parseDouble(args[2]);
最终整数N=螺旋转数(P,Q);
IPoint2D点=新的IPoint2D(0,0.);
简单拉深。拉深点(点);

对于(int i=1;i进行此操作时:

final int r = P/Q;

您需要确保Q永远不为零,否则在执行此操作时将出现算术异常:

final int r = P/Q;

您需要确保Q永远不为零,否则如果
p
小于
Q
(或者
Q
0
将立即抛出
算术异常
),则会出现算术异常

r
的值为
0
。然后除以
r=0

double x = ((1 - r) * Math.cos(radianI)) + (H * Math.cos(((1- r) / r) *  radianI));

如果
p
小于
Q
(或
Q
0
将立即抛出
算术异常,则抛出
算术异常

r
的值为
0
。然后除以
r=0

double x = ((1 - r) * Math.cos(radianI)) + (H * Math.cos(((1- r) / r) *  radianI));

抛出
算术异常

是否有
0
在某个地方?您能输入您得到的确切异常吗?请发布堆栈跟踪。这意味着您提供了一些计算器将表示为“数学错误”的内容,通常是当结果为无穷大或不是数字(不存在)时,或被零除是最常见的。是否有
0
的地方?您可以输入您得到的确切异常吗?请发布堆栈跟踪。这意味着您提供了一些计算器将表示为“数学错误”的内容,通常当结果是无限大或不是数字(不存在)时,或者被零除是最常见的。