请教老师,这样写是否正确?
@Override public int compareTo(Goods o) { double price1 = this.getPrice(); double price2 = o.getPrice(); // int n = new Double(price2-price1).intValue(); // return n; return (int)(price2-price1); }
老师好!教程中,定义一个Double类型的对象,然后取整,再自动拆箱为整型类弄,再返回。
我写的是直接返(price2-price1)对结果强制转换为int类型,我在编译器里运行了,效果是一样的。
这样写可以吗?有什么弊端?
另外,我试了一下,这两个比较器不能对小数部分无法进行比较,我用了一个笨方法
return (int)((price2*1000)-(price1*1000)); //乘100可以比较两个小位,乘1000可以比较三位小数
这样去写,是能成功的比较小数部分,但有限制性,不知道更好的方法是什么?
15
收起
正在回答
1回答
同学你好,直接返(price2-price1)对结果强制转换为int类型,也是正确的。
2、同学所说的笨方法也是正确的!而java中double类型的比较可参考如下这种:
Double d1 = new Double(45.23); Double d2 = new Double(45.22); int dou = d1.compareTo(d2); System.out.println(dou);
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星