编辑:最初,参数是数组。数组无法转换为双打。似乎工作正常,因为我将数组参数更改为double。这段代码已经解决了。
// private instance variables
private double myRangeMeters, myRangeFeet, myInitialVel, myRadians;
Catapult(double initialVel, double radians)
{
myRangeMeters = 0.0;
myRangeFeet = 0.0;
myInitialVel = initialVel;
myRadians = radians;
}
public void calcProjectileDist()
{
myRangeMeters = (Math.pow(myInitialVel, 2) * Math.sin(2 * myRadians)) / 9.8;
}
public void convertMetersToFeet()
{
myRangeFeet = myRangeMeters * 3.28084;
}
public double getProjectileDist()
{
return myRangeFeet;
}
答案 0 :(得分:1)
下面是计算射弹距离的公式,pow
和sin
函数期望值为double。
(Math.pow(speed,2) * Math.sin(angle * 2))/9.8
因为你有一个初始值和弧度数组,所以你应该遍历每个元素然后在另一个数组中的距离
public void calcProjectileDist()
{
double [] rangeMeters=new double[myInitialVel.length];
for(int i =0; i<myInitialVel.length;i++){
rangeMeters[i]=(Math.pow(myInitialVel[i], 2) * Math.sin(2 * myRadians[i])) / 9.8;
}
}
答案 1 :(得分:0)
问题在于此代码
public class Product {
private String productName;
public Product(String productName) {
setProductName(productName); // for validation
}
public String getProductName() {
return this.productName;
}
public void setProductName(String productName) {
if (productName == null || productName.length() == 0)
throw new IllegalArgumentException("product name cannot be null or empty");
this.productname = productName;
}
Math.pow(myInitialVel, 2)
期望双倍而不是数组。
我无法从这段代码中看出,变量是应该更改为Math.pow
还是应该选择数组的索引并转换为双精度