price1和price2相差小于1时Double判断不准
原文int n = new Double(price2 - price1).intValue();
是要怎么写?这样吗?
int n = new BigDecimal(price2 - price1).intValue();
正在回答
同学你好~~
这个jdk9不支持包装类实例化,但是不影响使用,不影响学习,
目前市场上还是以jdk8为主。
如果我的回答解决了你的疑惑,欢迎采纳,祝学习愉快~~
同学你好~
这个方法可以这样写下:
@Override
public int compareTo(Goods o) {
BigDecimal price1=new BigDecimal(new Double(this.getPrice()).toString());
BigDecimal price2=new BigDecimal(new Double(o.getPrice()).toString());
BigDecimal num=price1.subtract(price2);
int n=num.compareTo(BigDecimal.ZERO);//判断num和0的大小,大于0返回1,小于0返回-1,等于0返回0
return n;
}
如果解决了你的疑惑,请采纳,祝学习愉快~~
视频中到下面一段时,
红字提示:注意,当price1和price2的差小于1时,n=0因此可以根据需求做下一步判断。
而且,Double是编译器划线的,之前问过,回复是java9以后已经不用这个构造函数了。
那现在该怎么写这一段,又要没横线,又可以规避红字提示的内容。
@Override
public int compareTo(Goods o) {
double price1 = this.getPrice();
double price2 = o.getPrice();
int n = new Double(price2 - price1).intValue();
return n;
}
package sort;
import java.math.BigDecimal;
public class Goods implements Comparable<Goods> {
private String id;// 商品编号
private String name;// 商品名称
private double price;// 商品价格
public Goods(String id, String name, double price) {
super();
this.id = id;
this.name = name;
this.price = price;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String toString() {
return "商品编号:" + id + ",商品名称:" + name + ",商品价格:" + price;
}
@Override
public int compareTo(Goods o) {
double price1 = this.getPrice();
double price2 = o.getPrice();
int n = new Double(price2 - price1).intValue();
return n;
}
}同学你好~
返回类型与Comparable.compareTo(Goods)不兼容,
实现int compareTo(Goods)
该方法比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。
请同学按照以上修改一下,如果还是没有解决,请贴一下你的代码,以及报错的截图,以便于老师更准确的回答你的问题,也请同学以后遇到需要调试的代码,贴一下你的代码(代码不要贴截图),以及报错的截图 注意不要贴在回复里,会失去代码的格式。可以在“我要回答”里贴一下。
方法的重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和参数个数和参数类型都必须相同不能改变。
如果解决了你的疑惑,请采纳,祝学习愉快~~
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星