Java报错:运算符'!='无法应用于'double'与'null'求助
问题分析与解决
你的报错原因很明确:
double是Java的基本数据类型,不是引用类型,所以不能和null做!=比较——基本类型本身不存在null值,默认值是0.0。- 基本类型也没有
equals()方法,只有Double这类引用包装类才能调用该方法。 - 另外你的方法返回类型设为
double不合理,判断“是否免费”应该返回布尔值boolean。
修正后的代码
double price; public boolean isFree() { return this.price == 0.0; }
补充:浮点数精度问题
如果price是通过计算得到的(比如折扣、税费运算),直接用==比较浮点数可能会有精度误差,建议通过差值判断是否接近0:
public boolean isFree() { return Math.abs(this.price - 0.0) < 1e-9; }
内容的提问来源于stack exchange,提问作者Rawan
相关产品推荐
相关产品推荐

