在这里,我们正面临着两个数组排序的奇怪问题:它们中的数字是显示这些数组的顶部和底部,最大值和最小值的关键为了将它们排成一行。排序数组中负数的错误(双精度)
这里有两个阵列:
double[] hor = {5.938, 5.989, 6.047, 6.105, 6.159, 6.211, 6.260, 6.314, 6.351};
double[] vert = {-6.589,-6.348, -5.991, -5.691,- 5.491, -5.203, -4.989,- 4.805, -4.650};
A和功能:
public void escala(double[] hor, double[] vert) {
double minX = Double.MAX_VALUE;
double maxX = Double.MIN_VALUE;
for (double x : hor) {
if (x < minX)
minX = x;
if (x > maxX)
maxX = x;
}
double minY = Double.MAX_VALUE;
double maxY = Double.MIN_VALUE;
for (double y : vert) {
if (y < minY)
minY = y;
if (y > maxY)
maxY = y;
}
double margin=0.00;
final double actualMaxY = maxY+margin*(maxY-minY);
final double actualMinY = minY-margin*(maxY-minY);
final double actualMaxX = maxX+margin*(maxX-minX);
final double actualMinX = minX-margin*(maxX-minX);
System.err.println("actualMinY==" + actualMinY);
System.err.println("actualMaxY==" + actualMaxY);
cgraf.setLimits(actualMinX, actualMaxX, actualMinY, actualMaxY, (maxX-minX)/5, (maxY-minY)/10);
ccur.setLimits(actualMinX, actualMaxX, actualMinY, actualMaxY, (maxX-minX)/5, (maxY-minY)/10);
}
而结果的头痛是这样的:
- 最大值= 0.000(当然,4.9E-324)
- 最小值= -6.589
它适用于正数的数组。但是对于这个负数数组,它会崩溃。有关如何更改代码以使其能够工作的任何想法?
预期的结果是:
- 最大值= -4.650
- 最小值= -6.589
需要该函数值发送到图形类中的applet。
预期结果是什么? – Christian
看看数学课的辅助方法 – hd1