java - 打印时如何防止出现 NaN?
问题描述
这是我的任务。
编写一个名为 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
解决方案
当您在 main 方法中编写时,这将创建一个与股票类中double previousClosingPrice = 34.5;
命名的字段完全分开的变量。previousClosingPrice
是的,他们有相同的名字。这并不能使它们神奇地成为同一件事。
在您的主要方法中,您根本不应该有那条线。
如所写,您的主要方法无法调整任何给定股票实例中的 previousClosingPrice 字段;该字段是私有的,没有任何方法可以更改它。我建议你制作一个名为public void setPreviousClosingPrice(double value) {this.previousClosingPrice = value;}
.
推荐阅读
- python - kdeplot 中的参数“bw”有什么不同?
- java - @Cacheable 在 Spring Boot 中从具有 @transactional 注释的方法调用时不创建缓存键
- javascript - 连接 NextJS、next-i18next、with-redux、with-redux-saga:“错误:如果您的自定义 _app.js 文件中有 getInitialProps 方法...”
- unity3d - 统一 if 语句即使是真的也不会起作用
- python - 列包含列
- c# - 当我尝试将文件复制到“//192.168.0.22”之类的共享路径时,访问被拒绝错误
- android - 如何获取回收站当前可见项目位置
- jquery - 如何格式化通过 AJAX 从 ASPX JSON 解析的日期?
- css - 有没有办法在反应中使用我的样式作为外部 css 文件?
- c - C中寄存器存储类的存储分配?