import java.math.BigDecimal;
public class test {
public static void main(String[] args) {
BigDecimal b1 = new BigDecimal("0.1");
BigDecimal b2 = new BigDecimal("0.2");
System.out.println(b1.multiply(b2)); // the result is 0.02
System.out.println(b1.multiply(b2).equals("0.02")); // boolean is false
System.out.println(b1.add(b2)); //the result is 0.3
System.out.println(b1.add(b2).equals("0.3")); // boolean is false
}
};
我不知道为什么.equals的结果总是假的?谢谢你的回答。
2条答案
按热度按时间wwwo4jvm1#
您正在比较
BigDecimal
与String
。代替
您应该使用
5kgi1eie2#
您正在尝试将BigDecimal与字符串进行比较。
b1.乘(b2).等于(“0.02”)
此语句将比较String“0.02”和BigDecimal,由于两种数据类型不同,因此返回false。
创建一个值为“0.02”的BigDecimal新对象,并将其作为参数传递。