【发布时间】:2019-09-26 01:48:42
【问题描述】:
这是我的任务。
-
编写一个名为 Stock 的类,其中包含:
- 股票代码的名为 symbol 的字符串数据字段。
- 一个名为 name 的字符串数据字段,用于股票名称。
- 一个名为 perviousClosingPrice 的双数据字段,用于存储前一天的股票价格。
- 一个名为 currentPrice 的双数据字段,用于存储当前时间的股票价格。
- 创建具有指定代码和名称的股票的构造函数。
- 名为 getChangePercent() 的方法返回从 previousClosingPrice 更改为 currentPrice 的百分比。
编写一个 StockTest 类,该类创建一个 Stock 对象,该对象的股票代码为 ORCL,名称为 Oracle Corporation,之前的收盘价为 34.5。将新的当前价格设置为 34.35,并显示价格 - 变化百分比。
和
我的代码是这样的
public class Stock{
private String Symbol, Name;
private double previousClosingPrice, currentPrice;
public Stock(String stockName, String stockSymbol){
Name = stockName;
Symbol = stockSymbol;
}
public double getChangePercent(){
return (previousClosingPrice - currentPrice)/previousClosingPrice * 100;
}
}
import java.util.Scanner;
public class StockTest{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String stockSymbol = "ORCL";
String stockName = "Oracle Corporation";
double previousClosingPrice = 34.5;
double currentPrice = 34.35;
Stock stock = new Stock(stockName, stockSymbol);
double percentChange = stock.getChangePercent();
System.out.println("The company" + stockName + "has a stock price of" + currentPrice +".");
System.out.println("Which is an increase of " + stock.getChangePercent() + " % increase");
}
}
我只是得到这个输出:
The companyOracle Corporationhas a stock price of34.35.
Which is an increase of NaN% increase
我想显示一个实际数字而不是 NaN
【问题讨论】:
-
double previousClosingPrice = 34.5;你不应该使用这个,你应该使用Stock变量。您将需要一种方法来设置这些字段 -
我还是个新手,请您详细说明一下,我不完全理解这一点
-
NaN是一个伪数(不是数字)。这表明您在某处犯了数学错误,可能被零除。 -
在
getChangePercent中,您除以previousClosingPrice,但从未设置过此值。 -
表示它被初始化为
0.0作为默认值。
标签: java class methods printing numbers